@wordpress/components 30.9.0 → 31.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 (233) hide show
  1. package/CHANGELOG.md +26 -4
  2. package/build/alignment-matrix-control/cell.js +131 -3
  3. package/build/alignment-matrix-control/cell.js.map +4 -4
  4. package/build/alignment-matrix-control/index.js +134 -6
  5. package/build/alignment-matrix-control/index.js.map +3 -3
  6. package/build/angle-picker-control/angle-circle.js +119 -15
  7. package/build/angle-picker-control/angle-circle.js.map +4 -4
  8. package/build/angle-picker-control/index.js +12 -7
  9. package/build/angle-picker-control/index.js.map +3 -3
  10. package/build/dropdown-menu/index.js +1 -1
  11. package/build/dropdown-menu/index.js.map +2 -2
  12. package/build/form-token-field/index.js +1 -13
  13. package/build/form-token-field/index.js.map +3 -3
  14. package/build/menu/styles.js +17 -17
  15. package/build/menu/styles.js.map +2 -2
  16. package/build/menu-item/index.js +1 -1
  17. package/build/menu-item/index.js.map +2 -2
  18. package/build/notice/index.js +1 -1
  19. package/build/notice/index.js.map +2 -2
  20. package/build/query-controls/index.js +0 -1
  21. package/build/query-controls/index.js.map +2 -2
  22. package/build/snackbar/index.js +1 -1
  23. package/build/snackbar/index.js.map +1 -1
  24. package/build/validated-form-controls/components/checkbox-control.js +0 -10
  25. package/build/validated-form-controls/components/checkbox-control.js.map +2 -2
  26. package/build/validated-form-controls/components/combobox-control.js +1 -11
  27. package/build/validated-form-controls/components/combobox-control.js.map +2 -2
  28. package/build/validated-form-controls/components/custom-select-control.js +0 -10
  29. package/build/validated-form-controls/components/custom-select-control.js.map +2 -2
  30. package/build/validated-form-controls/components/form-token-field.js +2 -13
  31. package/build/validated-form-controls/components/form-token-field.js.map +2 -2
  32. package/build/validated-form-controls/components/input-control.js +0 -10
  33. package/build/validated-form-controls/components/input-control.js.map +2 -2
  34. package/build/validated-form-controls/components/number-control.js +0 -10
  35. package/build/validated-form-controls/components/number-control.js.map +2 -2
  36. package/build/validated-form-controls/components/radio-control.js +0 -10
  37. package/build/validated-form-controls/components/radio-control.js.map +2 -2
  38. package/build/validated-form-controls/components/range-control.js +0 -10
  39. package/build/validated-form-controls/components/range-control.js.map +2 -2
  40. package/build/validated-form-controls/components/select-control.js +0 -10
  41. package/build/validated-form-controls/components/select-control.js.map +2 -2
  42. package/build/validated-form-controls/components/text-control.js +0 -10
  43. package/build/validated-form-controls/components/text-control.js.map +2 -2
  44. package/build/validated-form-controls/components/textarea-control.js +0 -10
  45. package/build/validated-form-controls/components/textarea-control.js.map +2 -2
  46. package/build/validated-form-controls/components/toggle-control.js +0 -10
  47. package/build/validated-form-controls/components/toggle-control.js.map +2 -2
  48. package/build/validated-form-controls/components/toggle-group-control.js +0 -10
  49. package/build/validated-form-controls/components/toggle-group-control.js.map +2 -2
  50. package/build/validated-form-controls/control-with-error.js +53 -58
  51. package/build/validated-form-controls/control-with-error.js.map +2 -2
  52. package/build-module/alignment-matrix-control/cell.js +131 -3
  53. package/build-module/alignment-matrix-control/cell.js.map +3 -3
  54. package/build-module/alignment-matrix-control/index.js +134 -6
  55. package/build-module/alignment-matrix-control/index.js.map +3 -3
  56. package/build-module/angle-picker-control/angle-circle.js +109 -15
  57. package/build-module/angle-picker-control/angle-circle.js.map +3 -3
  58. package/build-module/angle-picker-control/index.js +12 -7
  59. package/build-module/angle-picker-control/index.js.map +2 -2
  60. package/build-module/dropdown-menu/index.js +1 -1
  61. package/build-module/dropdown-menu/index.js.map +2 -2
  62. package/build-module/form-token-field/index.js +1 -13
  63. package/build-module/form-token-field/index.js.map +2 -2
  64. package/build-module/menu/styles.js +17 -17
  65. package/build-module/menu/styles.js.map +2 -2
  66. package/build-module/menu-item/index.js +1 -1
  67. package/build-module/menu-item/index.js.map +2 -2
  68. package/build-module/notice/index.js +1 -1
  69. package/build-module/notice/index.js.map +2 -2
  70. package/build-module/query-controls/index.js +0 -1
  71. package/build-module/query-controls/index.js.map +2 -2
  72. package/build-module/snackbar/index.js +1 -1
  73. package/build-module/snackbar/index.js.map +1 -1
  74. package/build-module/validated-form-controls/components/checkbox-control.js +0 -10
  75. package/build-module/validated-form-controls/components/checkbox-control.js.map +2 -2
  76. package/build-module/validated-form-controls/components/combobox-control.js +1 -11
  77. package/build-module/validated-form-controls/components/combobox-control.js.map +2 -2
  78. package/build-module/validated-form-controls/components/custom-select-control.js +0 -10
  79. package/build-module/validated-form-controls/components/custom-select-control.js.map +2 -2
  80. package/build-module/validated-form-controls/components/form-token-field.js +2 -13
  81. package/build-module/validated-form-controls/components/form-token-field.js.map +2 -2
  82. package/build-module/validated-form-controls/components/input-control.js +0 -10
  83. package/build-module/validated-form-controls/components/input-control.js.map +2 -2
  84. package/build-module/validated-form-controls/components/number-control.js +0 -10
  85. package/build-module/validated-form-controls/components/number-control.js.map +2 -2
  86. package/build-module/validated-form-controls/components/radio-control.js +0 -10
  87. package/build-module/validated-form-controls/components/radio-control.js.map +2 -2
  88. package/build-module/validated-form-controls/components/range-control.js +0 -10
  89. package/build-module/validated-form-controls/components/range-control.js.map +2 -2
  90. package/build-module/validated-form-controls/components/select-control.js +0 -10
  91. package/build-module/validated-form-controls/components/select-control.js.map +2 -2
  92. package/build-module/validated-form-controls/components/text-control.js +0 -10
  93. package/build-module/validated-form-controls/components/text-control.js.map +2 -2
  94. package/build-module/validated-form-controls/components/textarea-control.js +0 -10
  95. package/build-module/validated-form-controls/components/textarea-control.js.map +2 -2
  96. package/build-module/validated-form-controls/components/toggle-control.js +0 -10
  97. package/build-module/validated-form-controls/components/toggle-control.js.map +2 -2
  98. package/build-module/validated-form-controls/components/toggle-group-control.js +0 -10
  99. package/build-module/validated-form-controls/components/toggle-group-control.js.map +2 -2
  100. package/build-module/validated-form-controls/control-with-error.js +53 -58
  101. package/build-module/validated-form-controls/control-with-error.js.map +2 -2
  102. package/build-style/style-rtl.css +21 -33
  103. package/build-style/style.css +21 -33
  104. package/build-types/alignment-matrix-control/cell.d.ts.map +1 -1
  105. package/build-types/alignment-matrix-control/index.d.ts.map +1 -1
  106. package/build-types/angle-picker-control/angle-circle.d.ts +1 -1
  107. package/build-types/angle-picker-control/angle-circle.d.ts.map +1 -1
  108. package/build-types/angle-picker-control/index.d.ts.map +1 -1
  109. package/build-types/form-token-field/index.d.ts.map +1 -1
  110. package/build-types/form-token-field/stories/index.story.d.ts.map +1 -1
  111. package/build-types/form-token-field/types.d.ts +0 -6
  112. package/build-types/form-token-field/types.d.ts.map +1 -1
  113. package/build-types/notice/index.d.ts.map +1 -1
  114. package/build-types/notice/stories/index.story.d.ts.map +1 -1
  115. package/build-types/query-controls/index.d.ts.map +1 -1
  116. package/build-types/validated-form-controls/components/checkbox-control.d.ts +1 -1
  117. package/build-types/validated-form-controls/components/checkbox-control.d.ts.map +1 -1
  118. package/build-types/validated-form-controls/components/combobox-control.d.ts +2 -3
  119. package/build-types/validated-form-controls/components/combobox-control.d.ts.map +1 -1
  120. package/build-types/validated-form-controls/components/custom-select-control.d.ts +1 -2
  121. package/build-types/validated-form-controls/components/custom-select-control.d.ts.map +1 -1
  122. package/build-types/validated-form-controls/components/form-token-field.d.ts +1 -2
  123. package/build-types/validated-form-controls/components/form-token-field.d.ts.map +1 -1
  124. package/build-types/validated-form-controls/components/input-control.d.ts +1 -2
  125. package/build-types/validated-form-controls/components/input-control.d.ts.map +1 -1
  126. package/build-types/validated-form-controls/components/number-control.d.ts +1 -1
  127. package/build-types/validated-form-controls/components/number-control.d.ts.map +1 -1
  128. package/build-types/validated-form-controls/components/radio-control.d.ts +1 -1
  129. package/build-types/validated-form-controls/components/radio-control.d.ts.map +1 -1
  130. package/build-types/validated-form-controls/components/range-control.d.ts +1 -1
  131. package/build-types/validated-form-controls/components/range-control.d.ts.map +1 -1
  132. package/build-types/validated-form-controls/components/select-control.d.ts +2 -3
  133. package/build-types/validated-form-controls/components/select-control.d.ts.map +1 -1
  134. package/build-types/validated-form-controls/components/stories/checkbox-control.story.d.ts.map +1 -1
  135. package/build-types/validated-form-controls/components/stories/combobox-control.story.d.ts.map +1 -1
  136. package/build-types/validated-form-controls/components/stories/custom-select-control.story.d.ts.map +1 -1
  137. package/build-types/validated-form-controls/components/stories/form-token-field.story.d.ts.map +1 -1
  138. package/build-types/validated-form-controls/components/stories/input-control.story.d.ts.map +1 -1
  139. package/build-types/validated-form-controls/components/stories/number-control.story.d.ts.map +1 -1
  140. package/build-types/validated-form-controls/components/stories/overview.story.d.ts +7 -0
  141. package/build-types/validated-form-controls/components/stories/overview.story.d.ts.map +1 -1
  142. package/build-types/validated-form-controls/components/stories/radio-control.story.d.ts.map +1 -1
  143. package/build-types/validated-form-controls/components/stories/range-control.story.d.ts.map +1 -1
  144. package/build-types/validated-form-controls/components/stories/select-control.story.d.ts.map +1 -1
  145. package/build-types/validated-form-controls/components/stories/text-control.story.d.ts.map +1 -1
  146. package/build-types/validated-form-controls/components/stories/textarea-control.story.d.ts.map +1 -1
  147. package/build-types/validated-form-controls/components/stories/toggle-control.story.d.ts.map +1 -1
  148. package/build-types/validated-form-controls/components/stories/toggle-group-control.story.d.ts.map +1 -1
  149. package/build-types/validated-form-controls/components/text-control.d.ts +1 -1
  150. package/build-types/validated-form-controls/components/text-control.d.ts.map +1 -1
  151. package/build-types/validated-form-controls/components/textarea-control.d.ts +1 -1
  152. package/build-types/validated-form-controls/components/textarea-control.d.ts.map +1 -1
  153. package/build-types/validated-form-controls/components/toggle-control.d.ts +1 -1
  154. package/build-types/validated-form-controls/components/toggle-control.d.ts.map +1 -1
  155. package/build-types/validated-form-controls/components/toggle-group-control.d.ts +1 -1
  156. package/build-types/validated-form-controls/components/toggle-group-control.d.ts.map +1 -1
  157. package/build-types/validated-form-controls/components/types.d.ts +1 -9
  158. package/build-types/validated-form-controls/components/types.d.ts.map +1 -1
  159. package/build-types/validated-form-controls/control-with-error.d.ts +4 -5
  160. package/build-types/validated-form-controls/control-with-error.d.ts.map +1 -1
  161. package/package.json +20 -20
  162. package/src/alignment-matrix-control/cell.tsx +14 -3
  163. package/src/alignment-matrix-control/index.tsx +15 -6
  164. package/src/alignment-matrix-control/style.module.scss +84 -0
  165. package/src/angle-picker-control/angle-circle.tsx +27 -12
  166. package/src/angle-picker-control/index.tsx +8 -7
  167. package/src/angle-picker-control/style.module.scss +40 -0
  168. package/src/button/style.scss +1 -1
  169. package/src/dropdown-menu/index.tsx +1 -1
  170. package/src/dropdown-menu/style.scss +1 -1
  171. package/src/form-token-field/README.md +0 -2
  172. package/src/form-token-field/index.tsx +1 -13
  173. package/src/form-token-field/stories/index.story.tsx +0 -2
  174. package/src/form-token-field/test/index.tsx +0 -1
  175. package/src/form-token-field/types.ts +0 -6
  176. package/src/guide/style.scss +3 -3
  177. package/src/menu/styles.ts +2 -2
  178. package/src/menu-item/index.tsx +1 -1
  179. package/src/menu-item/test/__snapshots__/index.js.snap +4 -4
  180. package/src/modal/style.scss +5 -5
  181. package/src/notice/index.tsx +53 -46
  182. package/src/notice/stories/index.story.tsx +17 -1
  183. package/src/notice/style.scss +3 -20
  184. package/src/query-controls/index.tsx +0 -1
  185. package/src/snackbar/index.tsx +1 -1
  186. package/src/validated-form-controls/components/checkbox-control.tsx +1 -14
  187. package/src/validated-form-controls/components/combobox-control.tsx +1 -14
  188. package/src/validated-form-controls/components/custom-select-control.tsx +1 -19
  189. package/src/validated-form-controls/components/form-token-field.tsx +4 -21
  190. package/src/validated-form-controls/components/input-control.tsx +1 -14
  191. package/src/validated-form-controls/components/number-control.tsx +1 -16
  192. package/src/validated-form-controls/components/radio-control.tsx +2 -18
  193. package/src/validated-form-controls/components/range-control.tsx +1 -14
  194. package/src/validated-form-controls/components/select-control.tsx +1 -23
  195. package/src/validated-form-controls/components/stories/checkbox-control.story.tsx +11 -20
  196. package/src/validated-form-controls/components/stories/combobox-control.story.tsx +8 -17
  197. package/src/validated-form-controls/components/stories/custom-select-control.story.tsx +8 -17
  198. package/src/validated-form-controls/components/stories/form-token-field.story.tsx +14 -26
  199. package/src/validated-form-controls/components/stories/input-control.story.tsx +25 -50
  200. package/src/validated-form-controls/components/stories/number-control.story.tsx +10 -19
  201. package/src/validated-form-controls/components/stories/overview.mdx +3 -3
  202. package/src/validated-form-controls/components/stories/overview.story.tsx +94 -79
  203. package/src/validated-form-controls/components/stories/radio-control.story.tsx +11 -20
  204. package/src/validated-form-controls/components/stories/range-control.story.tsx +8 -17
  205. package/src/validated-form-controls/components/stories/select-control.story.tsx +9 -18
  206. package/src/validated-form-controls/components/stories/text-control.story.tsx +11 -17
  207. package/src/validated-form-controls/components/stories/textarea-control.story.tsx +12 -16
  208. package/src/validated-form-controls/components/stories/toggle-control.story.tsx +11 -20
  209. package/src/validated-form-controls/components/stories/toggle-group-control.story.tsx +8 -17
  210. package/src/validated-form-controls/components/text-control.tsx +1 -14
  211. package/src/validated-form-controls/components/textarea-control.tsx +1 -14
  212. package/src/validated-form-controls/components/toggle-control.tsx +1 -14
  213. package/src/validated-form-controls/components/toggle-group-control.tsx +1 -14
  214. package/src/validated-form-controls/components/types.ts +1 -9
  215. package/src/validated-form-controls/control-with-error.tsx +57 -84
  216. package/src/validated-form-controls/style.scss +7 -7
  217. package/src/validated-form-controls/test/control-with-error.tsx +66 -5
  218. package/tsconfig.json +1 -0
  219. package/tsconfig.tsbuildinfo +1 -1
  220. package/build/alignment-matrix-control/styles.js +0 -105
  221. package/build/alignment-matrix-control/styles.js.map +0 -7
  222. package/build/angle-picker-control/styles/angle-picker-control-styles.js +0 -88
  223. package/build/angle-picker-control/styles/angle-picker-control-styles.js.map +0 -7
  224. package/build-module/alignment-matrix-control/styles.js +0 -67
  225. package/build-module/alignment-matrix-control/styles.js.map +0 -7
  226. package/build-module/angle-picker-control/styles/angle-picker-control-styles.js +0 -50
  227. package/build-module/angle-picker-control/styles/angle-picker-control-styles.js.map +0 -7
  228. package/build-types/alignment-matrix-control/styles.d.ts +0 -21
  229. package/build-types/alignment-matrix-control/styles.d.ts.map +0 -1
  230. package/build-types/angle-picker-control/styles/angle-picker-control-styles.d.ts +0 -18
  231. package/build-types/angle-picker-control/styles/angle-picker-control-styles.d.ts.map +0 -1
  232. package/src/alignment-matrix-control/styles.ts +0 -113
  233. package/src/angle-picker-control/styles/angle-picker-control-styles.tsx +0 -58
@@ -40,8 +40,9 @@ var import_i18n = require("@wordpress/i18n");
40
40
  var import_flex = require("../flex");
41
41
  var import_spacer = require("../spacer");
42
42
  var import_number_control = __toESM(require("../number-control"));
43
+ var import_input_prefix_wrapper = __toESM(require("../input-control/input-prefix-wrapper"));
44
+ var import_input_suffix_wrapper = __toESM(require("../input-control/input-suffix-wrapper"));
43
45
  var import_angle_circle = __toESM(require("./angle-circle"));
44
- var import_angle_picker_control_styles = require("./styles/angle-picker-control-styles");
45
46
  var import_jsx_runtime = require("react/jsx-runtime");
46
47
  function UnforwardedAnglePickerControl(props, ref) {
47
48
  const {
@@ -59,10 +60,15 @@ function UnforwardedAnglePickerControl(props, ref) {
59
60
  onChange(inputValue);
60
61
  };
61
62
  const classes = (0, import_clsx.default)("components-angle-picker-control", className);
62
- const unitText = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_angle_picker_control_styles.UnitText, {
63
- children: "\xB0"
64
- });
65
- const [prefixedUnitText, suffixedUnitText] = (0, import_i18n.isRTL)() ? [unitText, null] : [null, unitText];
63
+ const prefixOrSuffixProp = (0, import_i18n.isRTL)() ? {
64
+ prefix: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_input_prefix_wrapper.default, {
65
+ children: "\xB0"
66
+ })
67
+ } : {
68
+ suffix: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_input_suffix_wrapper.default, {
69
+ children: "\xB0"
70
+ })
71
+ };
66
72
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_flex.Flex, {
67
73
  ...restProps,
68
74
  ref,
@@ -79,8 +85,7 @@ function UnforwardedAnglePickerControl(props, ref) {
79
85
  step: "1",
80
86
  value,
81
87
  spinControls: "none",
82
- prefix: prefixedUnitText,
83
- suffix: suffixedUnitText
88
+ ...prefixOrSuffixProp
84
89
  })
85
90
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_spacer.Spacer, {
86
91
  marginBottom: "1",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/angle-picker-control/index.tsx"],
4
- "sourcesContent": ["/**\n * External dependencies\n */\n\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { forwardRef } from '@wordpress/element';\nimport { isRTL, __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { Flex, FlexBlock } from '../flex';\nimport { Spacer } from '../spacer';\nimport NumberControl from '../number-control';\nimport AngleCircle from './angle-circle';\nimport { UnitText } from './styles/angle-picker-control-styles';\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nfunction UnforwardedAnglePickerControl(props, ref) {\n const {\n className,\n label = __('Angle'),\n onChange,\n value,\n ...restProps\n } = props;\n const handleOnNumberChange = unprocessedValue => {\n if (onChange === undefined) {\n return;\n }\n const inputValue = unprocessedValue !== undefined && unprocessedValue !== '' ? parseInt(unprocessedValue, 10) : 0;\n onChange(inputValue);\n };\n const classes = clsx('components-angle-picker-control', className);\n const unitText = /*#__PURE__*/_jsx(UnitText, {\n children: \"\\xB0\"\n });\n const [prefixedUnitText, suffixedUnitText] = isRTL() ? [unitText, null] : [null, unitText];\n return /*#__PURE__*/_jsxs(Flex, {\n ...restProps,\n ref: ref,\n className: classes,\n gap: 2,\n children: [/*#__PURE__*/_jsx(FlexBlock, {\n children: /*#__PURE__*/_jsx(NumberControl, {\n __next40pxDefaultSize: true,\n label: label,\n className: \"components-angle-picker-control__input-field\",\n max: 360,\n min: 0,\n onChange: handleOnNumberChange,\n step: \"1\",\n value: value,\n spinControls: \"none\",\n prefix: prefixedUnitText,\n suffix: suffixedUnitText\n })\n }), /*#__PURE__*/_jsx(Spacer, {\n marginBottom: \"1\",\n marginTop: \"auto\",\n children: /*#__PURE__*/_jsx(AngleCircle, {\n \"aria-hidden\": \"true\",\n value: value,\n onChange: onChange\n })\n })]\n });\n}\n\n/**\n * `AnglePickerControl` is a React component to render a UI that allows users to\n * pick an angle. Users can choose an angle in a visual UI with the mouse by\n * dragging an angle indicator inside a circle or by directly inserting the\n * desired angle in a text field.\n *\n * ```jsx\n * import { useState } from '@wordpress/element';\n * import { AnglePickerControl } from '@wordpress/components';\n *\n * function Example() {\n * const [ angle, setAngle ] = useState( 0 );\n * return (\n * <AnglePickerControl\n * value={ angle }\n * onChange={ setAngle }\n * />\n * );\n * }\n * ```\n */\nexport const AnglePickerControl = forwardRef(UnforwardedAnglePickerControl);\nexport default AnglePickerControl;"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,kBAAiB;AAKjB,qBAA2B;AAC3B,kBAA0B;AAK1B,kBAAgC;AAChC,oBAAuB;AACvB,4BAA0B;AAC1B,0BAAwB;AACxB,yCAAyB;AACzB,yBAA2C;AAC3C,SAAS,8BAA8B,OAAO,KAAK;AACjD,QAAM;AAAA,IACJ;AAAA,IACA,YAAQ,gBAAG,OAAO;AAAA,IAClB;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,IAAI;AACJ,QAAM,uBAAuB,sBAAoB;AAC/C,QAAI,aAAa,QAAW;AAC1B;AAAA,IACF;AACA,UAAM,aAAa,qBAAqB,UAAa,qBAAqB,KAAK,SAAS,kBAAkB,EAAE,IAAI;AAChH,aAAS,UAAU;AAAA,EACrB;AACA,QAAM,cAAU,YAAAA,SAAK,mCAAmC,SAAS;AACjE,QAAM,WAAwB,uCAAAC,KAAK,6CAAU;AAAA,IAC3C,UAAU;AAAA,EACZ,CAAC;AACD,QAAM,CAAC,kBAAkB,gBAAgB,QAAI,mBAAM,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,QAAQ;AACzF,SAAoB,uCAAAC,MAAM,kBAAM;AAAA,IAC9B,GAAG;AAAA,IACH;AAAA,IACA,WAAW;AAAA,IACX,KAAK;AAAA,IACL,UAAU,CAAc,uCAAAD,KAAK,uBAAW;AAAA,MACtC,UAAuB,uCAAAA,KAAK,sBAAAE,SAAe;AAAA,QACzC,uBAAuB;AAAA,QACvB;AAAA,QACA,WAAW;AAAA,QACX,KAAK;AAAA,QACL,KAAK;AAAA,QACL,UAAU;AAAA,QACV,MAAM;AAAA,QACN;AAAA,QACA,cAAc;AAAA,QACd,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV,CAAC;AAAA,IACH,CAAC,GAAgB,uCAAAF,KAAK,sBAAQ;AAAA,MAC5B,cAAc;AAAA,MACd,WAAW;AAAA,MACX,UAAuB,uCAAAA,KAAK,oBAAAG,SAAa;AAAA,QACvC,eAAe;AAAA,QACf;AAAA,QACA;AAAA,MACF,CAAC;AAAA,IACH,CAAC,CAAC;AAAA,EACJ,CAAC;AACH;AAuBO,IAAM,yBAAqB,2BAAW,6BAA6B;AAC1E,IAAO,+BAAQ;",
6
- "names": ["clsx", "_jsx", "_jsxs", "NumberControl", "AngleCircle"]
4
+ "sourcesContent": ["/**\n * External dependencies\n */\n\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { forwardRef } from '@wordpress/element';\nimport { isRTL, __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { Flex, FlexBlock } from '../flex';\nimport { Spacer } from '../spacer';\nimport NumberControl from '../number-control';\nimport InputControlPrefixWrapper from '../input-control/input-prefix-wrapper';\nimport InputControlSuffixWrapper from '../input-control/input-suffix-wrapper';\nimport AngleCircle from './angle-circle';\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nfunction UnforwardedAnglePickerControl(props, ref) {\n const {\n className,\n label = __('Angle'),\n onChange,\n value,\n ...restProps\n } = props;\n const handleOnNumberChange = unprocessedValue => {\n if (onChange === undefined) {\n return;\n }\n const inputValue = unprocessedValue !== undefined && unprocessedValue !== '' ? parseInt(unprocessedValue, 10) : 0;\n onChange(inputValue);\n };\n const classes = clsx('components-angle-picker-control', className);\n\n // Override the default behavior and position the degree symbol to the\n // right of the number, regardless of the language direction.\n const prefixOrSuffixProp = isRTL() ? {\n prefix: /*#__PURE__*/_jsx(InputControlPrefixWrapper, {\n children: \"\\xB0\"\n })\n } : {\n suffix: /*#__PURE__*/_jsx(InputControlSuffixWrapper, {\n children: \"\\xB0\"\n })\n };\n return /*#__PURE__*/_jsxs(Flex, {\n ...restProps,\n ref: ref,\n className: classes,\n gap: 2,\n children: [/*#__PURE__*/_jsx(FlexBlock, {\n children: /*#__PURE__*/_jsx(NumberControl, {\n __next40pxDefaultSize: true,\n label: label,\n className: \"components-angle-picker-control__input-field\",\n max: 360,\n min: 0,\n onChange: handleOnNumberChange,\n step: \"1\",\n value: value,\n spinControls: \"none\",\n ...prefixOrSuffixProp\n })\n }), /*#__PURE__*/_jsx(Spacer, {\n marginBottom: \"1\",\n marginTop: \"auto\",\n children: /*#__PURE__*/_jsx(AngleCircle, {\n \"aria-hidden\": \"true\",\n value: value,\n onChange: onChange\n })\n })]\n });\n}\n\n/**\n * `AnglePickerControl` is a React component to render a UI that allows users to\n * pick an angle. Users can choose an angle in a visual UI with the mouse by\n * dragging an angle indicator inside a circle or by directly inserting the\n * desired angle in a text field.\n *\n * ```jsx\n * import { useState } from '@wordpress/element';\n * import { AnglePickerControl } from '@wordpress/components';\n *\n * function Example() {\n * const [ angle, setAngle ] = useState( 0 );\n * return (\n * <AnglePickerControl\n * value={ angle }\n * onChange={ setAngle }\n * />\n * );\n * }\n * ```\n */\nexport const AnglePickerControl = forwardRef(UnforwardedAnglePickerControl);\nexport default AnglePickerControl;"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,kBAAiB;AAKjB,qBAA2B;AAC3B,kBAA0B;AAK1B,kBAAgC;AAChC,oBAAuB;AACvB,4BAA0B;AAC1B,kCAAsC;AACtC,kCAAsC;AACtC,0BAAwB;AACxB,yBAA2C;AAC3C,SAAS,8BAA8B,OAAO,KAAK;AACjD,QAAM;AAAA,IACJ;AAAA,IACA,YAAQ,gBAAG,OAAO;AAAA,IAClB;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,IAAI;AACJ,QAAM,uBAAuB,sBAAoB;AAC/C,QAAI,aAAa,QAAW;AAC1B;AAAA,IACF;AACA,UAAM,aAAa,qBAAqB,UAAa,qBAAqB,KAAK,SAAS,kBAAkB,EAAE,IAAI;AAChH,aAAS,UAAU;AAAA,EACrB;AACA,QAAM,cAAU,YAAAA,SAAK,mCAAmC,SAAS;AAIjE,QAAM,yBAAqB,mBAAM,IAAI;AAAA,IACnC,QAAqB,uCAAAC,KAAK,4BAAAC,SAA2B;AAAA,MACnD,UAAU;AAAA,IACZ,CAAC;AAAA,EACH,IAAI;AAAA,IACF,QAAqB,uCAAAD,KAAK,4BAAAE,SAA2B;AAAA,MACnD,UAAU;AAAA,IACZ,CAAC;AAAA,EACH;AACA,SAAoB,uCAAAC,MAAM,kBAAM;AAAA,IAC9B,GAAG;AAAA,IACH;AAAA,IACA,WAAW;AAAA,IACX,KAAK;AAAA,IACL,UAAU,CAAc,uCAAAH,KAAK,uBAAW;AAAA,MACtC,UAAuB,uCAAAA,KAAK,sBAAAI,SAAe;AAAA,QACzC,uBAAuB;AAAA,QACvB;AAAA,QACA,WAAW;AAAA,QACX,KAAK;AAAA,QACL,KAAK;AAAA,QACL,UAAU;AAAA,QACV,MAAM;AAAA,QACN;AAAA,QACA,cAAc;AAAA,QACd,GAAG;AAAA,MACL,CAAC;AAAA,IACH,CAAC,GAAgB,uCAAAJ,KAAK,sBAAQ;AAAA,MAC5B,cAAc;AAAA,MACd,WAAW;AAAA,MACX,UAAuB,uCAAAA,KAAK,oBAAAK,SAAa;AAAA,QACvC,eAAe;AAAA,QACf;AAAA,QACA;AAAA,MACF,CAAC;AAAA,IACH,CAAC,CAAC;AAAA,EACJ,CAAC;AACH;AAuBO,IAAM,yBAAqB,2BAAW,6BAA6B;AAC1E,IAAO,+BAAQ;",
6
+ "names": ["clsx", "_jsx", "InputControlPrefixWrapper", "InputControlSuffixWrapper", "_jsxs", "NumberControl", "AngleCircle"]
7
7
  }
@@ -147,7 +147,7 @@ function UnconnectedDropdownMenu(dropdownMenuProps) {
147
147
  ...mergedMenuProps,
148
148
  role: "menu",
149
149
  children: [isFunction(children) ? children(props) : null, controlSets?.flatMap((controlSet, indexOfSet) => controlSet.map((control, indexOfControl) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_button.default, {
150
- __next40pxDefaultSize: true,
150
+ size: "compact",
151
151
  onClick: (event) => {
152
152
  event.stopPropagation();
153
153
  props.onClose();
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/dropdown-menu/index.tsx"],
4
- "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { menu } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { contextConnectWithoutRef, useContextSystem } from '../context';\nimport Button from '../button';\nimport Dropdown from '../dropdown';\nimport { NavigableMenu } from '../navigable-container';\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nfunction mergeProps(defaultProps = {}, props = {}) {\n const mergedProps = {\n ...defaultProps,\n ...props\n };\n if (props.className && defaultProps.className) {\n mergedProps.className = clsx(props.className, defaultProps.className);\n }\n return mergedProps;\n}\nfunction isFunction(maybeFunc) {\n return typeof maybeFunc === 'function';\n}\nfunction UnconnectedDropdownMenu(dropdownMenuProps) {\n const {\n children,\n className,\n controls,\n icon = menu,\n label,\n popoverProps,\n toggleProps,\n menuProps,\n disableOpenOnArrowDown = false,\n text,\n noIcons,\n open,\n defaultOpen,\n onToggle: onToggleProp,\n // Context\n variant\n } = useContextSystem(dropdownMenuProps, 'DropdownMenu');\n if (!controls?.length && !isFunction(children)) {\n return null;\n }\n\n // Normalize controls to nested array of objects (sets of controls)\n let controlSets;\n if (controls?.length) {\n // @ts-expect-error The check below is needed because `DropdownMenus`\n // rendered by `ToolBarGroup` receive controls as a nested array.\n controlSets = controls;\n if (!Array.isArray(controlSets[0])) {\n // This is not ideal, but at this point we know that `controls` is\n // not a nested array, even if TypeScript doesn't.\n controlSets = [controls];\n }\n }\n const mergedPopoverProps = mergeProps({\n className: 'components-dropdown-menu__popover',\n variant\n }, popoverProps);\n return /*#__PURE__*/_jsx(Dropdown, {\n className: className,\n popoverProps: mergedPopoverProps,\n renderToggle: ({\n isOpen,\n onToggle\n }) => {\n var _toggleProps$showTool;\n const openOnArrowDown = event => {\n if (disableOpenOnArrowDown) {\n return;\n }\n if (!isOpen && event.code === 'ArrowDown') {\n event.preventDefault();\n onToggle();\n }\n };\n const {\n as: Toggle = Button,\n ...restToggleProps\n } = toggleProps !== null && toggleProps !== void 0 ? toggleProps : {};\n const mergedToggleProps = mergeProps({\n className: clsx('components-dropdown-menu__toggle', {\n 'is-opened': isOpen\n })\n }, restToggleProps);\n return /*#__PURE__*/_jsx(Toggle, {\n ...mergedToggleProps,\n icon: icon,\n onClick: event => {\n onToggle();\n if (mergedToggleProps.onClick) {\n mergedToggleProps.onClick(event);\n }\n },\n onKeyDown: event => {\n openOnArrowDown(event);\n if (mergedToggleProps.onKeyDown) {\n mergedToggleProps.onKeyDown(event);\n }\n },\n \"aria-haspopup\": \"true\",\n \"aria-expanded\": isOpen,\n label: label,\n text: text,\n showTooltip: (_toggleProps$showTool = toggleProps?.showTooltip) !== null && _toggleProps$showTool !== void 0 ? _toggleProps$showTool : true,\n children: mergedToggleProps.children\n });\n },\n renderContent: props => {\n const mergedMenuProps = mergeProps({\n 'aria-label': label,\n className: clsx('components-dropdown-menu__menu', {\n 'no-icons': noIcons\n })\n }, menuProps);\n return /*#__PURE__*/_jsxs(NavigableMenu, {\n ...mergedMenuProps,\n role: \"menu\",\n children: [isFunction(children) ? children(props) : null, controlSets?.flatMap((controlSet, indexOfSet) => controlSet.map((control, indexOfControl) => /*#__PURE__*/_jsx(Button, {\n __next40pxDefaultSize: true,\n onClick: event => {\n event.stopPropagation();\n props.onClose();\n if (control.onClick) {\n control.onClick();\n }\n },\n className: clsx('components-dropdown-menu__menu-item', {\n 'has-separator': indexOfSet > 0 && indexOfControl === 0,\n 'is-active': control.isActive,\n 'is-icon-only': !control.title\n }),\n icon: control.icon,\n label: control.label,\n \"aria-checked\": control.role === 'menuitemcheckbox' || control.role === 'menuitemradio' ? control.isActive : undefined,\n role: control.role === 'menuitemcheckbox' || control.role === 'menuitemradio' ? control.role : 'menuitem',\n accessibleWhenDisabled: true,\n disabled: control.isDisabled,\n children: control.title\n }, [indexOfSet, indexOfControl].join())))]\n });\n },\n open: open,\n defaultOpen: defaultOpen,\n onToggle: onToggleProp\n });\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 */\nexport const DropdownMenu = contextConnectWithoutRef(UnconnectedDropdownMenu, 'DropdownMenu');\nexport default DropdownMenu;"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { menu } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { contextConnectWithoutRef, useContextSystem } from '../context';\nimport Button from '../button';\nimport Dropdown from '../dropdown';\nimport { NavigableMenu } from '../navigable-container';\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nfunction mergeProps(defaultProps = {}, props = {}) {\n const mergedProps = {\n ...defaultProps,\n ...props\n };\n if (props.className && defaultProps.className) {\n mergedProps.className = clsx(props.className, defaultProps.className);\n }\n return mergedProps;\n}\nfunction isFunction(maybeFunc) {\n return typeof maybeFunc === 'function';\n}\nfunction UnconnectedDropdownMenu(dropdownMenuProps) {\n const {\n children,\n className,\n controls,\n icon = menu,\n label,\n popoverProps,\n toggleProps,\n menuProps,\n disableOpenOnArrowDown = false,\n text,\n noIcons,\n open,\n defaultOpen,\n onToggle: onToggleProp,\n // Context\n variant\n } = useContextSystem(dropdownMenuProps, 'DropdownMenu');\n if (!controls?.length && !isFunction(children)) {\n return null;\n }\n\n // Normalize controls to nested array of objects (sets of controls)\n let controlSets;\n if (controls?.length) {\n // @ts-expect-error The check below is needed because `DropdownMenus`\n // rendered by `ToolBarGroup` receive controls as a nested array.\n controlSets = controls;\n if (!Array.isArray(controlSets[0])) {\n // This is not ideal, but at this point we know that `controls` is\n // not a nested array, even if TypeScript doesn't.\n controlSets = [controls];\n }\n }\n const mergedPopoverProps = mergeProps({\n className: 'components-dropdown-menu__popover',\n variant\n }, popoverProps);\n return /*#__PURE__*/_jsx(Dropdown, {\n className: className,\n popoverProps: mergedPopoverProps,\n renderToggle: ({\n isOpen,\n onToggle\n }) => {\n var _toggleProps$showTool;\n const openOnArrowDown = event => {\n if (disableOpenOnArrowDown) {\n return;\n }\n if (!isOpen && event.code === 'ArrowDown') {\n event.preventDefault();\n onToggle();\n }\n };\n const {\n as: Toggle = Button,\n ...restToggleProps\n } = toggleProps !== null && toggleProps !== void 0 ? toggleProps : {};\n const mergedToggleProps = mergeProps({\n className: clsx('components-dropdown-menu__toggle', {\n 'is-opened': isOpen\n })\n }, restToggleProps);\n return /*#__PURE__*/_jsx(Toggle, {\n ...mergedToggleProps,\n icon: icon,\n onClick: event => {\n onToggle();\n if (mergedToggleProps.onClick) {\n mergedToggleProps.onClick(event);\n }\n },\n onKeyDown: event => {\n openOnArrowDown(event);\n if (mergedToggleProps.onKeyDown) {\n mergedToggleProps.onKeyDown(event);\n }\n },\n \"aria-haspopup\": \"true\",\n \"aria-expanded\": isOpen,\n label: label,\n text: text,\n showTooltip: (_toggleProps$showTool = toggleProps?.showTooltip) !== null && _toggleProps$showTool !== void 0 ? _toggleProps$showTool : true,\n children: mergedToggleProps.children\n });\n },\n renderContent: props => {\n const mergedMenuProps = mergeProps({\n 'aria-label': label,\n className: clsx('components-dropdown-menu__menu', {\n 'no-icons': noIcons\n })\n }, menuProps);\n return /*#__PURE__*/_jsxs(NavigableMenu, {\n ...mergedMenuProps,\n role: \"menu\",\n children: [isFunction(children) ? children(props) : null, controlSets?.flatMap((controlSet, indexOfSet) => controlSet.map((control, indexOfControl) => /*#__PURE__*/_jsx(Button, {\n size: \"compact\",\n onClick: event => {\n event.stopPropagation();\n props.onClose();\n if (control.onClick) {\n control.onClick();\n }\n },\n className: clsx('components-dropdown-menu__menu-item', {\n 'has-separator': indexOfSet > 0 && indexOfControl === 0,\n 'is-active': control.isActive,\n 'is-icon-only': !control.title\n }),\n icon: control.icon,\n label: control.label,\n \"aria-checked\": control.role === 'menuitemcheckbox' || control.role === 'menuitemradio' ? control.isActive : undefined,\n role: control.role === 'menuitemcheckbox' || control.role === 'menuitemradio' ? control.role : 'menuitem',\n accessibleWhenDisabled: true,\n disabled: control.isDisabled,\n children: control.title\n }, [indexOfSet, indexOfControl].join())))]\n });\n },\n open: open,\n defaultOpen: defaultOpen,\n onToggle: onToggleProp\n });\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 */\nexport const DropdownMenu = contextConnectWithoutRef(UnconnectedDropdownMenu, 'DropdownMenu');\nexport default DropdownMenu;"],
5
+ "mappings": "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",
6
6
  "names": ["clsx", "_jsx", "Dropdown", "Button", "_jsxs"]
7
7
  }
@@ -40,14 +40,12 @@ var import_i18n = require("@wordpress/i18n");
40
40
  var import_compose = require("@wordpress/compose");
41
41
  var import_a11y = require("@wordpress/a11y");
42
42
  var import_is_shallow_equal = __toESM(require("@wordpress/is-shallow-equal"));
43
- var import_deprecated = __toESM(require("@wordpress/deprecated"));
44
43
  var import_token = __toESM(require("./token"));
45
44
  var import_token_input = __toESM(require("./token-input"));
46
45
  var import_styles = require("./styles");
47
46
  var import_suggestions_list = __toESM(require("./suggestions-list"));
48
47
  var import_flex = require("../flex");
49
48
  var import_base_control_styles = require("../base-control/styles/base-control-styles");
50
- var import_spacer = require("../spacer");
51
49
  var import_use_deprecated_props = require("../utils/use-deprecated-props");
52
50
  var import_with_ignore_ime_events = require("../utils/with-ignore-ime-events");
53
51
  var import_deprecated_36px_size = require("../utils/deprecated-36px-size");
@@ -86,16 +84,8 @@ function FormTokenField(props) {
86
84
  __experimentalShowHowTo = true,
87
85
  __next40pxDefaultSize = false,
88
86
  __experimentalAutoSelectFirstMatch = false,
89
- __nextHasNoMarginBottom = false,
90
87
  tokenizeOnBlur = false
91
88
  } = (0, import_use_deprecated_props.useDeprecated36pxDefaultSizeProp)(props);
92
- if (!__nextHasNoMarginBottom) {
93
- (0, import_deprecated.default)("Bottom margin styles for wp.components.FormTokenField", {
94
- since: "6.7",
95
- version: "7.0",
96
- hint: "Set the `__nextHasNoMarginBottom` prop to true to start opting into the new styles, which will become the default in a future version."
97
- });
98
- }
99
89
  (0, import_deprecated_36px_size.maybeWarnDeprecated36pxSize)({
100
90
  componentName: "FormTokenField",
101
91
  size: void 0,
@@ -557,12 +547,10 @@ function FormTokenField(props) {
557
547
  onSelect: onSuggestionSelected,
558
548
  __experimentalRenderItem
559
549
  })]
560
- }), !__nextHasNoMarginBottom && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_spacer.Spacer, {
561
- marginBottom: 2
562
550
  }), __experimentalShowHowTo && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_base_control_styles.StyledHelp, {
563
551
  id: `components-form-token-suggestions-howto-${instanceId}`,
564
552
  className: "components-form-token-field__help",
565
- __nextHasNoMarginBottom,
553
+ __nextHasNoMarginBottom: true,
566
554
  children: tokenizeOnSpace ? (0, import_i18n.__)("Separate with commas, spaces, or the Enter key.") : (0, import_i18n.__)("Separate with commas or the Enter key.")
567
555
  })]
568
556
  });
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/form-token-field/index.tsx"],
4
- "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n/**\n * WordPress dependencies\n */\nimport { useEffect, useRef, useState } from '@wordpress/element';\nimport { __, _n, sprintf } from '@wordpress/i18n';\nimport { useDebounce, useInstanceId, usePrevious } from '@wordpress/compose';\nimport { speak } from '@wordpress/a11y';\nimport isShallowEqual from '@wordpress/is-shallow-equal';\nimport deprecated from '@wordpress/deprecated';\n\n/**\n * Internal dependencies\n */\nimport Token from './token';\nimport TokenInput from './token-input';\nimport { TokensAndInputWrapperFlex } from './styles';\nimport SuggestionsList from './suggestions-list';\nimport { FlexItem } from '../flex';\nimport { StyledHelp, StyledLabel } from '../base-control/styles/base-control-styles';\nimport { Spacer } from '../spacer';\nimport { useDeprecated36pxDefaultSizeProp } from '../utils/use-deprecated-props';\nimport { withIgnoreIMEEvents } from '../utils/with-ignore-ime-events';\nimport { maybeWarnDeprecated36pxSize } from '../utils/deprecated-36px-size';\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst identity = value => value;\n\n/**\n * A `FormTokenField` is a field similar to the tags and categories fields in the interim editor chrome,\n * or the \"to\" field in Mail on OS X. Tokens can be entered by typing them or selecting them from a list of suggested tokens.\n *\n * Up to one hundred suggestions that match what the user has typed so far will be shown from which the user can pick from (auto-complete).\n * Tokens are separated by the \",\" character. Suggestions can be selected with the up or down arrows and added with the tab or enter key.\n *\n * The `value` property is handled in a manner similar to controlled form components.\n * See [Forms](https://react.dev/reference/react-dom/components#form-components) in the React Documentation for more information.\n */\nexport function FormTokenField(props) {\n const {\n autoCapitalize,\n autoComplete,\n maxLength,\n placeholder,\n label = __('Add item'),\n className,\n suggestions = [],\n maxSuggestions = 100,\n value = [],\n displayTransform = identity,\n saveTransform = token => token.trim(),\n onChange = () => {},\n onInputChange = () => {},\n onFocus = undefined,\n isBorderless = false,\n disabled = false,\n tokenizeOnSpace = false,\n messages = {\n added: __('Item added.'),\n removed: __('Item removed.'),\n remove: __('Remove item'),\n __experimentalInvalid: __('Invalid item')\n },\n __experimentalRenderItem,\n __experimentalExpandOnFocus = false,\n __experimentalValidateInput = () => true,\n __experimentalShowHowTo = true,\n __next40pxDefaultSize = false,\n __experimentalAutoSelectFirstMatch = false,\n __nextHasNoMarginBottom = false,\n tokenizeOnBlur = false\n } = useDeprecated36pxDefaultSizeProp(props);\n if (!__nextHasNoMarginBottom) {\n deprecated('Bottom margin styles for wp.components.FormTokenField', {\n since: '6.7',\n version: '7.0',\n hint: 'Set the `__nextHasNoMarginBottom` prop to true to start opting into the new styles, which will become the default in a future version.'\n });\n }\n maybeWarnDeprecated36pxSize({\n componentName: 'FormTokenField',\n size: undefined,\n __next40pxDefaultSize\n });\n const instanceId = useInstanceId(FormTokenField);\n\n // We reset to these initial values again in the onBlur\n const [incompleteTokenValue, setIncompleteTokenValue] = useState('');\n const [inputOffsetFromEnd, setInputOffsetFromEnd] = useState(0);\n const [isActive, setIsActive] = useState(false);\n const [isExpanded, setIsExpanded] = useState(false);\n const [selectedSuggestionIndex, setSelectedSuggestionIndex] = useState(-1);\n const [selectedSuggestionScroll, setSelectedSuggestionScroll] = useState(false);\n const prevSuggestions = usePrevious(suggestions);\n const prevValue = usePrevious(value);\n const input = useRef(null);\n const tokensAndInput = useRef(null);\n const debouncedSpeak = useDebounce(speak, 500);\n useEffect(() => {\n // Make sure to focus the input when the isActive state is true.\n if (isActive && !hasFocus()) {\n focus();\n }\n }, [isActive]);\n useEffect(() => {\n const suggestionsDidUpdate = !isShallowEqual(suggestions, prevSuggestions || []);\n if (suggestionsDidUpdate || value !== prevValue) {\n updateSuggestions(suggestionsDidUpdate);\n }\n\n // TODO: updateSuggestions() should first be refactored so its actual deps are clearer.\n }, [suggestions, prevSuggestions, value, prevValue]);\n useEffect(() => {\n updateSuggestions();\n }, [incompleteTokenValue]);\n useEffect(() => {\n updateSuggestions();\n }, [__experimentalAutoSelectFirstMatch]);\n if (disabled && isActive) {\n setIsActive(false);\n setIncompleteTokenValue('');\n }\n function focus() {\n input.current?.focus();\n }\n function hasFocus() {\n return input.current === input.current?.ownerDocument.activeElement;\n }\n function onFocusHandler(event) {\n // If focus is on the input or on the container, set the isActive state to true.\n if (hasFocus() || event.target === tokensAndInput.current) {\n setIsActive(true);\n setIsExpanded(__experimentalExpandOnFocus || isExpanded);\n } else {\n /*\n * Otherwise, focus is on one of the token \"remove\" buttons and we\n * set the isActive state to false to prevent the input to be\n * re-focused, see componentDidUpdate().\n */\n setIsActive(false);\n }\n if ('function' === typeof onFocus) {\n onFocus(event);\n }\n }\n function onBlur(event) {\n if (inputHasValidValue() && __experimentalValidateInput(incompleteTokenValue)) {\n setIsActive(false);\n if (tokenizeOnBlur && inputHasValidValue()) {\n addNewToken(incompleteTokenValue);\n }\n } else {\n // Reset to initial state\n setIncompleteTokenValue('');\n setInputOffsetFromEnd(0);\n setIsActive(false);\n if (__experimentalExpandOnFocus) {\n // If `__experimentalExpandOnFocus` is true, don't close the suggestions list when\n // the user clicks on it (`tokensAndInput` will be the element that caused the blur).\n const hasFocusWithin = event.relatedTarget === tokensAndInput.current;\n setIsExpanded(hasFocusWithin);\n } else {\n // Else collapse the suggestion list. This will result in the suggestion list closing\n // after a suggestion has been submitted since that causes a blur.\n setIsExpanded(false);\n }\n setSelectedSuggestionIndex(-1);\n setSelectedSuggestionScroll(false);\n }\n }\n function onKeyDown(event) {\n let preventDefault = false;\n if (event.defaultPrevented) {\n return;\n }\n switch (event.key) {\n case 'Backspace':\n preventDefault = handleDeleteKey(deleteTokenBeforeInput);\n break;\n case 'Enter':\n preventDefault = addCurrentToken();\n break;\n case 'ArrowLeft':\n preventDefault = handleLeftArrowKey();\n break;\n case 'ArrowUp':\n preventDefault = handleUpArrowKey();\n break;\n case 'ArrowRight':\n preventDefault = handleRightArrowKey();\n break;\n case 'ArrowDown':\n preventDefault = handleDownArrowKey();\n break;\n case 'Delete':\n preventDefault = handleDeleteKey(deleteTokenAfterInput);\n break;\n case 'Space':\n if (tokenizeOnSpace) {\n preventDefault = addCurrentToken();\n }\n break;\n case 'Escape':\n preventDefault = handleEscapeKey(event);\n break;\n case 'Tab':\n preventDefault = handleTabKey(event);\n break;\n default:\n break;\n }\n if (preventDefault) {\n event.preventDefault();\n }\n }\n function onKeyPress(event) {\n let preventDefault = false;\n switch (event.key) {\n case ',':\n preventDefault = handleCommaKey();\n break;\n default:\n break;\n }\n if (preventDefault) {\n event.preventDefault();\n }\n }\n function onContainerTouched(event) {\n // Prevent clicking/touching the tokensAndInput container from blurring\n // the input and adding the current token.\n if (event.target === tokensAndInput.current && isActive) {\n event.preventDefault();\n }\n }\n function onTokenClickRemove(event) {\n deleteToken(event.value);\n focus();\n }\n function onSuggestionHovered(suggestion) {\n const index = getMatchingSuggestions().indexOf(suggestion);\n if (index >= 0) {\n setSelectedSuggestionIndex(index);\n setSelectedSuggestionScroll(false);\n }\n }\n function onSuggestionSelected(suggestion) {\n addNewToken(suggestion);\n }\n function onInputChangeHandler(event) {\n const text = event.value;\n const separator = tokenizeOnSpace ? /[ ,\\t]+/ : /[,\\t]+/;\n const items = text.split(separator);\n const tokenValue = items[items.length - 1] || '';\n if (items.length > 1) {\n addNewTokens(items.slice(0, -1));\n }\n setIncompleteTokenValue(tokenValue);\n onInputChange(tokenValue);\n }\n function handleDeleteKey(_deleteToken) {\n let preventDefault = false;\n if (hasFocus() && isInputEmpty()) {\n _deleteToken();\n preventDefault = true;\n }\n return preventDefault;\n }\n function handleLeftArrowKey() {\n let preventDefault = false;\n if (isInputEmpty()) {\n moveInputBeforePreviousToken();\n preventDefault = true;\n }\n return preventDefault;\n }\n function handleRightArrowKey() {\n let preventDefault = false;\n if (isInputEmpty()) {\n moveInputAfterNextToken();\n preventDefault = true;\n }\n return preventDefault;\n }\n function handleUpArrowKey() {\n setSelectedSuggestionIndex(index => {\n return (index === 0 ? getMatchingSuggestions(incompleteTokenValue, suggestions, value, maxSuggestions, saveTransform).length : index) - 1;\n });\n setSelectedSuggestionScroll(true);\n return true; // PreventDefault.\n }\n function handleDownArrowKey() {\n setSelectedSuggestionIndex(index => {\n return (index + 1) % getMatchingSuggestions(incompleteTokenValue, suggestions, value, maxSuggestions, saveTransform).length;\n });\n setSelectedSuggestionScroll(true);\n return true; // PreventDefault.\n }\n function collapseSuggestionsList(event) {\n if (event.target instanceof HTMLInputElement) {\n setIncompleteTokenValue(event.target.value);\n setIsExpanded(false);\n setSelectedSuggestionIndex(-1);\n setSelectedSuggestionScroll(false);\n }\n }\n function handleEscapeKey(event) {\n collapseSuggestionsList(event);\n return true; // PreventDefault.\n }\n function handleTabKey(event) {\n collapseSuggestionsList(event);\n return false; // Do not prevent the default behavior.\n }\n function handleCommaKey() {\n if (inputHasValidValue()) {\n addNewToken(incompleteTokenValue);\n }\n return true; // PreventDefault.\n }\n function moveInputToIndex(index) {\n setInputOffsetFromEnd(value.length - Math.max(index, -1) - 1);\n }\n function moveInputBeforePreviousToken() {\n setInputOffsetFromEnd(prevInputOffsetFromEnd => {\n return Math.min(prevInputOffsetFromEnd + 1, value.length);\n });\n }\n function moveInputAfterNextToken() {\n setInputOffsetFromEnd(prevInputOffsetFromEnd => {\n return Math.max(prevInputOffsetFromEnd - 1, 0);\n });\n }\n function deleteTokenBeforeInput() {\n const index = getIndexOfInput() - 1;\n if (index > -1) {\n deleteToken(value[index]);\n }\n }\n function deleteTokenAfterInput() {\n const index = getIndexOfInput();\n if (index < value.length) {\n deleteToken(value[index]);\n // Update input offset since it's the offset from the last token.\n moveInputToIndex(index);\n }\n }\n function addCurrentToken() {\n let preventDefault = false;\n const selectedSuggestion = getSelectedSuggestion();\n if (selectedSuggestion) {\n addNewToken(selectedSuggestion);\n preventDefault = true;\n } else if (inputHasValidValue()) {\n addNewToken(incompleteTokenValue);\n preventDefault = true;\n }\n return preventDefault;\n }\n function addNewTokens(tokens) {\n const tokensToAdd = [...new Set(tokens.map(saveTransform).filter(Boolean).filter(token => !valueContainsToken(token)))];\n if (tokensToAdd.length > 0) {\n const newValue = [...value];\n newValue.splice(getIndexOfInput(), 0, ...tokensToAdd);\n onChange(newValue);\n }\n }\n function addNewToken(token) {\n if (!__experimentalValidateInput(token)) {\n speak(messages.__experimentalInvalid, 'assertive');\n return;\n }\n addNewTokens([token]);\n speak(messages.added, 'assertive');\n setIncompleteTokenValue('');\n setSelectedSuggestionIndex(-1);\n setSelectedSuggestionScroll(false);\n setIsExpanded(!__experimentalExpandOnFocus);\n if (isActive && !tokenizeOnBlur) {\n focus();\n }\n }\n function deleteToken(token) {\n const newTokens = value.filter(item => {\n return getTokenValue(item) !== getTokenValue(token);\n });\n onChange(newTokens);\n speak(messages.removed, 'assertive');\n }\n function getTokenValue(token) {\n if ('object' === typeof token) {\n return token.value;\n }\n return token;\n }\n function getMatchingSuggestions(searchValue = incompleteTokenValue, _suggestions = suggestions, _value = value, _maxSuggestions = maxSuggestions, _saveTransform = saveTransform) {\n let match = _saveTransform(searchValue);\n const startsWithMatch = [];\n const containsMatch = [];\n const normalizedValue = _value.map(item => {\n if (typeof item === 'string') {\n return item;\n }\n return item.value;\n });\n if (match.length === 0) {\n _suggestions = _suggestions.filter(suggestion => !normalizedValue.includes(suggestion));\n } else {\n match = match.normalize('NFKC').toLocaleLowerCase();\n _suggestions.forEach(suggestion => {\n const index = suggestion.normalize('NFKC').toLocaleLowerCase().indexOf(match);\n if (normalizedValue.indexOf(suggestion) === -1) {\n if (index === 0) {\n startsWithMatch.push(suggestion);\n } else if (index > 0) {\n containsMatch.push(suggestion);\n }\n }\n });\n _suggestions = startsWithMatch.concat(containsMatch);\n }\n return _suggestions.slice(0, _maxSuggestions);\n }\n function getSelectedSuggestion() {\n if (selectedSuggestionIndex !== -1) {\n return getMatchingSuggestions()[selectedSuggestionIndex];\n }\n return undefined;\n }\n function valueContainsToken(token) {\n return value.some(item => {\n return getTokenValue(token) === getTokenValue(item);\n });\n }\n function getIndexOfInput() {\n return value.length - inputOffsetFromEnd;\n }\n function isInputEmpty() {\n return incompleteTokenValue.length === 0;\n }\n function inputHasValidValue() {\n return saveTransform(incompleteTokenValue).length > 0;\n }\n function updateSuggestions(resetSelectedSuggestion = true) {\n const inputHasMinimumChars = incompleteTokenValue.trim().length > 1;\n const matchingSuggestions = getMatchingSuggestions(incompleteTokenValue);\n const hasMatchingSuggestions = matchingSuggestions.length > 0;\n const shouldExpandIfFocuses = hasFocus() && __experimentalExpandOnFocus;\n setIsExpanded(shouldExpandIfFocuses || inputHasMinimumChars && hasMatchingSuggestions);\n if (resetSelectedSuggestion) {\n if (__experimentalAutoSelectFirstMatch && inputHasMinimumChars && hasMatchingSuggestions) {\n setSelectedSuggestionIndex(0);\n setSelectedSuggestionScroll(true);\n } else {\n setSelectedSuggestionIndex(-1);\n setSelectedSuggestionScroll(false);\n }\n }\n if (inputHasMinimumChars) {\n const message = hasMatchingSuggestions ? sprintf(/* translators: %d: number of results. */\n _n('%d result found, use up and down arrow keys to navigate.', '%d results found, use up and down arrow keys to navigate.', matchingSuggestions.length), matchingSuggestions.length) : __('No results.');\n debouncedSpeak(message, 'assertive');\n }\n }\n function renderTokensAndInput() {\n const components = value.map(renderToken);\n components.splice(getIndexOfInput(), 0, renderInput());\n return components;\n }\n function renderToken(token, index, tokens) {\n const _value = getTokenValue(token);\n const status = typeof token !== 'string' ? token.status : undefined;\n const termPosition = index + 1;\n const termsCount = tokens.length;\n return /*#__PURE__*/_jsx(FlexItem, {\n children: /*#__PURE__*/_jsx(Token, {\n value: _value,\n status: status,\n title: typeof token !== 'string' ? token.title : undefined,\n displayTransform: displayTransform,\n onClickRemove: onTokenClickRemove,\n isBorderless: typeof token !== 'string' && token.isBorderless || isBorderless,\n onMouseEnter: typeof token !== 'string' ? token.onMouseEnter : undefined,\n onMouseLeave: typeof token !== 'string' ? token.onMouseLeave : undefined,\n disabled: 'error' !== status && disabled,\n messages: messages,\n termsCount: termsCount,\n termPosition: termPosition\n })\n }, 'token-' + _value);\n }\n function renderInput() {\n const inputProps = {\n instanceId,\n autoCapitalize,\n autoComplete,\n placeholder: value.length === 0 ? placeholder : '',\n disabled,\n value: incompleteTokenValue,\n onBlur,\n isExpanded,\n selectedSuggestionIndex\n };\n return /*#__PURE__*/_jsx(TokenInput, {\n ...inputProps,\n onChange: !(maxLength && value.length >= maxLength) ? onInputChangeHandler : undefined,\n ref: input\n }, \"input\");\n }\n const classes = clsx(className, 'components-form-token-field__input-container', {\n 'is-active': isActive,\n 'is-disabled': disabled\n });\n let tokenFieldProps = {\n className: 'components-form-token-field',\n tabIndex: -1\n };\n const matchingSuggestions = getMatchingSuggestions();\n if (!disabled) {\n tokenFieldProps = Object.assign({}, tokenFieldProps, {\n onKeyDown: withIgnoreIMEEvents(onKeyDown),\n onKeyPress,\n onFocus: onFocusHandler\n });\n }\n\n // Disable reason: There is no appropriate role which describes the\n // input container intended accessible usability.\n // TODO: Refactor click detection to use blur to stop propagation.\n /* eslint-disable jsx-a11y/no-static-element-interactions */\n return /*#__PURE__*/_jsxs(\"div\", {\n ...tokenFieldProps,\n children: [label && /*#__PURE__*/_jsx(StyledLabel, {\n htmlFor: `components-form-token-input-${instanceId}`,\n className: \"components-form-token-field__label\",\n children: label\n }), /*#__PURE__*/_jsxs(\"div\", {\n ref: tokensAndInput,\n className: classes,\n tabIndex: -1,\n onMouseDown: onContainerTouched,\n onTouchStart: onContainerTouched,\n children: [/*#__PURE__*/_jsx(TokensAndInputWrapperFlex, {\n justify: \"flex-start\",\n align: \"center\",\n gap: 1,\n wrap: true,\n __next40pxDefaultSize: __next40pxDefaultSize,\n hasTokens: !!value.length,\n children: renderTokensAndInput()\n }), isExpanded && /*#__PURE__*/_jsx(SuggestionsList, {\n instanceId: instanceId,\n match: saveTransform(incompleteTokenValue),\n displayTransform: displayTransform,\n suggestions: matchingSuggestions,\n selectedIndex: selectedSuggestionIndex,\n scrollIntoView: selectedSuggestionScroll,\n onHover: onSuggestionHovered,\n onSelect: onSuggestionSelected,\n __experimentalRenderItem: __experimentalRenderItem\n })]\n }), !__nextHasNoMarginBottom && /*#__PURE__*/_jsx(Spacer, {\n marginBottom: 2\n }), __experimentalShowHowTo && /*#__PURE__*/_jsx(StyledHelp, {\n id: `components-form-token-suggestions-howto-${instanceId}`,\n className: \"components-form-token-field__help\",\n __nextHasNoMarginBottom: __nextHasNoMarginBottom,\n children: tokenizeOnSpace ? __('Separate with commas, spaces, or the Enter key.') : __('Separate with commas or the Enter key.')\n })]\n });\n /* eslint-enable jsx-a11y/no-static-element-interactions */\n}\nexport default FormTokenField;"],
5
- "mappings": "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",
6
- "names": ["deprecated", "isShallowEqual", "matchingSuggestions", "_jsx", "Token", "TokenInput", "clsx", "_jsxs", "SuggestionsList"]
4
+ "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n/**\n * WordPress dependencies\n */\nimport { useEffect, useRef, useState } from '@wordpress/element';\nimport { __, _n, sprintf } from '@wordpress/i18n';\nimport { useDebounce, useInstanceId, usePrevious } from '@wordpress/compose';\nimport { speak } from '@wordpress/a11y';\nimport isShallowEqual from '@wordpress/is-shallow-equal';\n\n/**\n * Internal dependencies\n */\nimport Token from './token';\nimport TokenInput from './token-input';\nimport { TokensAndInputWrapperFlex } from './styles';\nimport SuggestionsList from './suggestions-list';\nimport { FlexItem } from '../flex';\nimport { StyledHelp, StyledLabel } from '../base-control/styles/base-control-styles';\nimport { useDeprecated36pxDefaultSizeProp } from '../utils/use-deprecated-props';\nimport { withIgnoreIMEEvents } from '../utils/with-ignore-ime-events';\nimport { maybeWarnDeprecated36pxSize } from '../utils/deprecated-36px-size';\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst identity = value => value;\n\n/**\n * A `FormTokenField` is a field similar to the tags and categories fields in the interim editor chrome,\n * or the \"to\" field in Mail on OS X. Tokens can be entered by typing them or selecting them from a list of suggested tokens.\n *\n * Up to one hundred suggestions that match what the user has typed so far will be shown from which the user can pick from (auto-complete).\n * Tokens are separated by the \",\" character. Suggestions can be selected with the up or down arrows and added with the tab or enter key.\n *\n * The `value` property is handled in a manner similar to controlled form components.\n * See [Forms](https://react.dev/reference/react-dom/components#form-components) in the React Documentation for more information.\n */\nexport function FormTokenField(props) {\n const {\n autoCapitalize,\n autoComplete,\n maxLength,\n placeholder,\n label = __('Add item'),\n className,\n suggestions = [],\n maxSuggestions = 100,\n value = [],\n displayTransform = identity,\n saveTransform = token => token.trim(),\n onChange = () => {},\n onInputChange = () => {},\n onFocus = undefined,\n isBorderless = false,\n disabled = false,\n tokenizeOnSpace = false,\n messages = {\n added: __('Item added.'),\n removed: __('Item removed.'),\n remove: __('Remove item'),\n __experimentalInvalid: __('Invalid item')\n },\n __experimentalRenderItem,\n __experimentalExpandOnFocus = false,\n __experimentalValidateInput = () => true,\n __experimentalShowHowTo = true,\n __next40pxDefaultSize = false,\n __experimentalAutoSelectFirstMatch = false,\n tokenizeOnBlur = false\n } = useDeprecated36pxDefaultSizeProp(props);\n maybeWarnDeprecated36pxSize({\n componentName: 'FormTokenField',\n size: undefined,\n __next40pxDefaultSize\n });\n const instanceId = useInstanceId(FormTokenField);\n\n // We reset to these initial values again in the onBlur\n const [incompleteTokenValue, setIncompleteTokenValue] = useState('');\n const [inputOffsetFromEnd, setInputOffsetFromEnd] = useState(0);\n const [isActive, setIsActive] = useState(false);\n const [isExpanded, setIsExpanded] = useState(false);\n const [selectedSuggestionIndex, setSelectedSuggestionIndex] = useState(-1);\n const [selectedSuggestionScroll, setSelectedSuggestionScroll] = useState(false);\n const prevSuggestions = usePrevious(suggestions);\n const prevValue = usePrevious(value);\n const input = useRef(null);\n const tokensAndInput = useRef(null);\n const debouncedSpeak = useDebounce(speak, 500);\n useEffect(() => {\n // Make sure to focus the input when the isActive state is true.\n if (isActive && !hasFocus()) {\n focus();\n }\n }, [isActive]);\n useEffect(() => {\n const suggestionsDidUpdate = !isShallowEqual(suggestions, prevSuggestions || []);\n if (suggestionsDidUpdate || value !== prevValue) {\n updateSuggestions(suggestionsDidUpdate);\n }\n\n // TODO: updateSuggestions() should first be refactored so its actual deps are clearer.\n }, [suggestions, prevSuggestions, value, prevValue]);\n useEffect(() => {\n updateSuggestions();\n }, [incompleteTokenValue]);\n useEffect(() => {\n updateSuggestions();\n }, [__experimentalAutoSelectFirstMatch]);\n if (disabled && isActive) {\n setIsActive(false);\n setIncompleteTokenValue('');\n }\n function focus() {\n input.current?.focus();\n }\n function hasFocus() {\n return input.current === input.current?.ownerDocument.activeElement;\n }\n function onFocusHandler(event) {\n // If focus is on the input or on the container, set the isActive state to true.\n if (hasFocus() || event.target === tokensAndInput.current) {\n setIsActive(true);\n setIsExpanded(__experimentalExpandOnFocus || isExpanded);\n } else {\n /*\n * Otherwise, focus is on one of the token \"remove\" buttons and we\n * set the isActive state to false to prevent the input to be\n * re-focused, see componentDidUpdate().\n */\n setIsActive(false);\n }\n if ('function' === typeof onFocus) {\n onFocus(event);\n }\n }\n function onBlur(event) {\n if (inputHasValidValue() && __experimentalValidateInput(incompleteTokenValue)) {\n setIsActive(false);\n if (tokenizeOnBlur && inputHasValidValue()) {\n addNewToken(incompleteTokenValue);\n }\n } else {\n // Reset to initial state\n setIncompleteTokenValue('');\n setInputOffsetFromEnd(0);\n setIsActive(false);\n if (__experimentalExpandOnFocus) {\n // If `__experimentalExpandOnFocus` is true, don't close the suggestions list when\n // the user clicks on it (`tokensAndInput` will be the element that caused the blur).\n const hasFocusWithin = event.relatedTarget === tokensAndInput.current;\n setIsExpanded(hasFocusWithin);\n } else {\n // Else collapse the suggestion list. This will result in the suggestion list closing\n // after a suggestion has been submitted since that causes a blur.\n setIsExpanded(false);\n }\n setSelectedSuggestionIndex(-1);\n setSelectedSuggestionScroll(false);\n }\n }\n function onKeyDown(event) {\n let preventDefault = false;\n if (event.defaultPrevented) {\n return;\n }\n switch (event.key) {\n case 'Backspace':\n preventDefault = handleDeleteKey(deleteTokenBeforeInput);\n break;\n case 'Enter':\n preventDefault = addCurrentToken();\n break;\n case 'ArrowLeft':\n preventDefault = handleLeftArrowKey();\n break;\n case 'ArrowUp':\n preventDefault = handleUpArrowKey();\n break;\n case 'ArrowRight':\n preventDefault = handleRightArrowKey();\n break;\n case 'ArrowDown':\n preventDefault = handleDownArrowKey();\n break;\n case 'Delete':\n preventDefault = handleDeleteKey(deleteTokenAfterInput);\n break;\n case 'Space':\n if (tokenizeOnSpace) {\n preventDefault = addCurrentToken();\n }\n break;\n case 'Escape':\n preventDefault = handleEscapeKey(event);\n break;\n case 'Tab':\n preventDefault = handleTabKey(event);\n break;\n default:\n break;\n }\n if (preventDefault) {\n event.preventDefault();\n }\n }\n function onKeyPress(event) {\n let preventDefault = false;\n switch (event.key) {\n case ',':\n preventDefault = handleCommaKey();\n break;\n default:\n break;\n }\n if (preventDefault) {\n event.preventDefault();\n }\n }\n function onContainerTouched(event) {\n // Prevent clicking/touching the tokensAndInput container from blurring\n // the input and adding the current token.\n if (event.target === tokensAndInput.current && isActive) {\n event.preventDefault();\n }\n }\n function onTokenClickRemove(event) {\n deleteToken(event.value);\n focus();\n }\n function onSuggestionHovered(suggestion) {\n const index = getMatchingSuggestions().indexOf(suggestion);\n if (index >= 0) {\n setSelectedSuggestionIndex(index);\n setSelectedSuggestionScroll(false);\n }\n }\n function onSuggestionSelected(suggestion) {\n addNewToken(suggestion);\n }\n function onInputChangeHandler(event) {\n const text = event.value;\n const separator = tokenizeOnSpace ? /[ ,\\t]+/ : /[,\\t]+/;\n const items = text.split(separator);\n const tokenValue = items[items.length - 1] || '';\n if (items.length > 1) {\n addNewTokens(items.slice(0, -1));\n }\n setIncompleteTokenValue(tokenValue);\n onInputChange(tokenValue);\n }\n function handleDeleteKey(_deleteToken) {\n let preventDefault = false;\n if (hasFocus() && isInputEmpty()) {\n _deleteToken();\n preventDefault = true;\n }\n return preventDefault;\n }\n function handleLeftArrowKey() {\n let preventDefault = false;\n if (isInputEmpty()) {\n moveInputBeforePreviousToken();\n preventDefault = true;\n }\n return preventDefault;\n }\n function handleRightArrowKey() {\n let preventDefault = false;\n if (isInputEmpty()) {\n moveInputAfterNextToken();\n preventDefault = true;\n }\n return preventDefault;\n }\n function handleUpArrowKey() {\n setSelectedSuggestionIndex(index => {\n return (index === 0 ? getMatchingSuggestions(incompleteTokenValue, suggestions, value, maxSuggestions, saveTransform).length : index) - 1;\n });\n setSelectedSuggestionScroll(true);\n return true; // PreventDefault.\n }\n function handleDownArrowKey() {\n setSelectedSuggestionIndex(index => {\n return (index + 1) % getMatchingSuggestions(incompleteTokenValue, suggestions, value, maxSuggestions, saveTransform).length;\n });\n setSelectedSuggestionScroll(true);\n return true; // PreventDefault.\n }\n function collapseSuggestionsList(event) {\n if (event.target instanceof HTMLInputElement) {\n setIncompleteTokenValue(event.target.value);\n setIsExpanded(false);\n setSelectedSuggestionIndex(-1);\n setSelectedSuggestionScroll(false);\n }\n }\n function handleEscapeKey(event) {\n collapseSuggestionsList(event);\n return true; // PreventDefault.\n }\n function handleTabKey(event) {\n collapseSuggestionsList(event);\n return false; // Do not prevent the default behavior.\n }\n function handleCommaKey() {\n if (inputHasValidValue()) {\n addNewToken(incompleteTokenValue);\n }\n return true; // PreventDefault.\n }\n function moveInputToIndex(index) {\n setInputOffsetFromEnd(value.length - Math.max(index, -1) - 1);\n }\n function moveInputBeforePreviousToken() {\n setInputOffsetFromEnd(prevInputOffsetFromEnd => {\n return Math.min(prevInputOffsetFromEnd + 1, value.length);\n });\n }\n function moveInputAfterNextToken() {\n setInputOffsetFromEnd(prevInputOffsetFromEnd => {\n return Math.max(prevInputOffsetFromEnd - 1, 0);\n });\n }\n function deleteTokenBeforeInput() {\n const index = getIndexOfInput() - 1;\n if (index > -1) {\n deleteToken(value[index]);\n }\n }\n function deleteTokenAfterInput() {\n const index = getIndexOfInput();\n if (index < value.length) {\n deleteToken(value[index]);\n // Update input offset since it's the offset from the last token.\n moveInputToIndex(index);\n }\n }\n function addCurrentToken() {\n let preventDefault = false;\n const selectedSuggestion = getSelectedSuggestion();\n if (selectedSuggestion) {\n addNewToken(selectedSuggestion);\n preventDefault = true;\n } else if (inputHasValidValue()) {\n addNewToken(incompleteTokenValue);\n preventDefault = true;\n }\n return preventDefault;\n }\n function addNewTokens(tokens) {\n const tokensToAdd = [...new Set(tokens.map(saveTransform).filter(Boolean).filter(token => !valueContainsToken(token)))];\n if (tokensToAdd.length > 0) {\n const newValue = [...value];\n newValue.splice(getIndexOfInput(), 0, ...tokensToAdd);\n onChange(newValue);\n }\n }\n function addNewToken(token) {\n if (!__experimentalValidateInput(token)) {\n speak(messages.__experimentalInvalid, 'assertive');\n return;\n }\n addNewTokens([token]);\n speak(messages.added, 'assertive');\n setIncompleteTokenValue('');\n setSelectedSuggestionIndex(-1);\n setSelectedSuggestionScroll(false);\n setIsExpanded(!__experimentalExpandOnFocus);\n if (isActive && !tokenizeOnBlur) {\n focus();\n }\n }\n function deleteToken(token) {\n const newTokens = value.filter(item => {\n return getTokenValue(item) !== getTokenValue(token);\n });\n onChange(newTokens);\n speak(messages.removed, 'assertive');\n }\n function getTokenValue(token) {\n if ('object' === typeof token) {\n return token.value;\n }\n return token;\n }\n function getMatchingSuggestions(searchValue = incompleteTokenValue, _suggestions = suggestions, _value = value, _maxSuggestions = maxSuggestions, _saveTransform = saveTransform) {\n let match = _saveTransform(searchValue);\n const startsWithMatch = [];\n const containsMatch = [];\n const normalizedValue = _value.map(item => {\n if (typeof item === 'string') {\n return item;\n }\n return item.value;\n });\n if (match.length === 0) {\n _suggestions = _suggestions.filter(suggestion => !normalizedValue.includes(suggestion));\n } else {\n match = match.normalize('NFKC').toLocaleLowerCase();\n _suggestions.forEach(suggestion => {\n const index = suggestion.normalize('NFKC').toLocaleLowerCase().indexOf(match);\n if (normalizedValue.indexOf(suggestion) === -1) {\n if (index === 0) {\n startsWithMatch.push(suggestion);\n } else if (index > 0) {\n containsMatch.push(suggestion);\n }\n }\n });\n _suggestions = startsWithMatch.concat(containsMatch);\n }\n return _suggestions.slice(0, _maxSuggestions);\n }\n function getSelectedSuggestion() {\n if (selectedSuggestionIndex !== -1) {\n return getMatchingSuggestions()[selectedSuggestionIndex];\n }\n return undefined;\n }\n function valueContainsToken(token) {\n return value.some(item => {\n return getTokenValue(token) === getTokenValue(item);\n });\n }\n function getIndexOfInput() {\n return value.length - inputOffsetFromEnd;\n }\n function isInputEmpty() {\n return incompleteTokenValue.length === 0;\n }\n function inputHasValidValue() {\n return saveTransform(incompleteTokenValue).length > 0;\n }\n function updateSuggestions(resetSelectedSuggestion = true) {\n const inputHasMinimumChars = incompleteTokenValue.trim().length > 1;\n const matchingSuggestions = getMatchingSuggestions(incompleteTokenValue);\n const hasMatchingSuggestions = matchingSuggestions.length > 0;\n const shouldExpandIfFocuses = hasFocus() && __experimentalExpandOnFocus;\n setIsExpanded(shouldExpandIfFocuses || inputHasMinimumChars && hasMatchingSuggestions);\n if (resetSelectedSuggestion) {\n if (__experimentalAutoSelectFirstMatch && inputHasMinimumChars && hasMatchingSuggestions) {\n setSelectedSuggestionIndex(0);\n setSelectedSuggestionScroll(true);\n } else {\n setSelectedSuggestionIndex(-1);\n setSelectedSuggestionScroll(false);\n }\n }\n if (inputHasMinimumChars) {\n const message = hasMatchingSuggestions ? sprintf(/* translators: %d: number of results. */\n _n('%d result found, use up and down arrow keys to navigate.', '%d results found, use up and down arrow keys to navigate.', matchingSuggestions.length), matchingSuggestions.length) : __('No results.');\n debouncedSpeak(message, 'assertive');\n }\n }\n function renderTokensAndInput() {\n const components = value.map(renderToken);\n components.splice(getIndexOfInput(), 0, renderInput());\n return components;\n }\n function renderToken(token, index, tokens) {\n const _value = getTokenValue(token);\n const status = typeof token !== 'string' ? token.status : undefined;\n const termPosition = index + 1;\n const termsCount = tokens.length;\n return /*#__PURE__*/_jsx(FlexItem, {\n children: /*#__PURE__*/_jsx(Token, {\n value: _value,\n status: status,\n title: typeof token !== 'string' ? token.title : undefined,\n displayTransform: displayTransform,\n onClickRemove: onTokenClickRemove,\n isBorderless: typeof token !== 'string' && token.isBorderless || isBorderless,\n onMouseEnter: typeof token !== 'string' ? token.onMouseEnter : undefined,\n onMouseLeave: typeof token !== 'string' ? token.onMouseLeave : undefined,\n disabled: 'error' !== status && disabled,\n messages: messages,\n termsCount: termsCount,\n termPosition: termPosition\n })\n }, 'token-' + _value);\n }\n function renderInput() {\n const inputProps = {\n instanceId,\n autoCapitalize,\n autoComplete,\n placeholder: value.length === 0 ? placeholder : '',\n disabled,\n value: incompleteTokenValue,\n onBlur,\n isExpanded,\n selectedSuggestionIndex\n };\n return /*#__PURE__*/_jsx(TokenInput, {\n ...inputProps,\n onChange: !(maxLength && value.length >= maxLength) ? onInputChangeHandler : undefined,\n ref: input\n }, \"input\");\n }\n const classes = clsx(className, 'components-form-token-field__input-container', {\n 'is-active': isActive,\n 'is-disabled': disabled\n });\n let tokenFieldProps = {\n className: 'components-form-token-field',\n tabIndex: -1\n };\n const matchingSuggestions = getMatchingSuggestions();\n if (!disabled) {\n tokenFieldProps = Object.assign({}, tokenFieldProps, {\n onKeyDown: withIgnoreIMEEvents(onKeyDown),\n onKeyPress,\n onFocus: onFocusHandler\n });\n }\n\n // Disable reason: There is no appropriate role which describes the\n // input container intended accessible usability.\n // TODO: Refactor click detection to use blur to stop propagation.\n /* eslint-disable jsx-a11y/no-static-element-interactions */\n return /*#__PURE__*/_jsxs(\"div\", {\n ...tokenFieldProps,\n children: [label && /*#__PURE__*/_jsx(StyledLabel, {\n htmlFor: `components-form-token-input-${instanceId}`,\n className: \"components-form-token-field__label\",\n children: label\n }), /*#__PURE__*/_jsxs(\"div\", {\n ref: tokensAndInput,\n className: classes,\n tabIndex: -1,\n onMouseDown: onContainerTouched,\n onTouchStart: onContainerTouched,\n children: [/*#__PURE__*/_jsx(TokensAndInputWrapperFlex, {\n justify: \"flex-start\",\n align: \"center\",\n gap: 1,\n wrap: true,\n __next40pxDefaultSize: __next40pxDefaultSize,\n hasTokens: !!value.length,\n children: renderTokensAndInput()\n }), isExpanded && /*#__PURE__*/_jsx(SuggestionsList, {\n instanceId: instanceId,\n match: saveTransform(incompleteTokenValue),\n displayTransform: displayTransform,\n suggestions: matchingSuggestions,\n selectedIndex: selectedSuggestionIndex,\n scrollIntoView: selectedSuggestionScroll,\n onHover: onSuggestionHovered,\n onSelect: onSuggestionSelected,\n __experimentalRenderItem: __experimentalRenderItem\n })]\n }), __experimentalShowHowTo && /*#__PURE__*/_jsx(StyledHelp, {\n id: `components-form-token-suggestions-howto-${instanceId}`,\n className: \"components-form-token-field__help\",\n __nextHasNoMarginBottom: true,\n children: tokenizeOnSpace ? __('Separate with commas, spaces, or the Enter key.') : __('Separate with commas or the Enter key.')\n })]\n });\n /* eslint-enable jsx-a11y/no-static-element-interactions */\n}\nexport default FormTokenField;"],
5
+ "mappings": "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",
6
+ "names": ["isShallowEqual", "matchingSuggestions", "_jsx", "Token", "TokenInput", "clsx", "_jsxs", "SuggestionsList"]
7
7
  }