@wordpress/components 19.0.0 → 19.0.1

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 (213) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/CONTRIBUTING.md +12 -12
  3. package/build/angle-picker-control/index.js +3 -1
  4. package/build/angle-picker-control/index.js.map +1 -1
  5. package/build/angle-picker-control/styles/angle-picker-control-styles.js +4 -4
  6. package/build/angle-picker-control/styles/angle-picker-control-styles.js.map +1 -1
  7. package/build/base-control/index.js +1 -1
  8. package/build/base-control/index.js.map +1 -1
  9. package/build/color-edit/index.js +180 -199
  10. package/build/color-edit/index.js.map +1 -1
  11. package/build/color-edit/styles.js +112 -0
  12. package/build/color-edit/styles.js.map +1 -0
  13. package/build/color-list-picker/index.js +6 -1
  14. package/build/color-list-picker/index.js.map +1 -1
  15. package/build/color-palette/index.js +86 -21
  16. package/build/color-palette/index.js.map +1 -1
  17. package/build/color-palette/styles.js +31 -0
  18. package/build/color-palette/styles.js.map +1 -0
  19. package/build/color-picker/component.js +7 -18
  20. package/build/color-picker/component.js.map +1 -1
  21. package/build/color-picker/picker.js +3 -3
  22. package/build/color-picker/picker.js.map +1 -1
  23. package/build/duotone-picker/custom-duotone-bar.js +0 -1
  24. package/build/duotone-picker/custom-duotone-bar.js.map +1 -1
  25. package/build/duotone-picker/duotone-picker.js +1 -0
  26. package/build/duotone-picker/duotone-picker.js.map +1 -1
  27. package/build/gradient-picker/index.js +69 -9
  28. package/build/gradient-picker/index.js.map +1 -1
  29. package/build/index.native.js +9 -0
  30. package/build/index.native.js.map +1 -1
  31. package/build/mobile/bottom-sheet/cell.native.js +4 -2
  32. package/build/mobile/bottom-sheet/cell.native.js.map +1 -1
  33. package/build/mobile/bottom-sheet/link-cell.native.js +3 -2
  34. package/build/mobile/bottom-sheet/link-cell.native.js.map +1 -1
  35. package/build/mobile/link-settings/image-link-destinations-screen.native.js +140 -0
  36. package/build/mobile/link-settings/image-link-destinations-screen.native.js.map +1 -0
  37. package/build/mobile/link-settings/index.native.js +3 -2
  38. package/build/mobile/link-settings/index.native.js.map +1 -1
  39. package/build/mobile/link-settings/link-settings-navigation.native.js +1 -0
  40. package/build/mobile/link-settings/link-settings-navigation.native.js.map +1 -1
  41. package/build/mobile/link-settings/link-settings-screen.native.js +11 -5
  42. package/build/mobile/link-settings/link-settings-screen.native.js.map +1 -1
  43. package/build/mobile/picker/index.android.js +4 -2
  44. package/build/mobile/picker/index.android.js.map +1 -1
  45. package/build/modal/index.js +10 -3
  46. package/build/modal/index.js.map +1 -1
  47. package/build/navigation/group/index.js +1 -2
  48. package/build/navigation/group/index.js.map +1 -1
  49. package/build/navigation/menu/menu-title-search.js +8 -27
  50. package/build/navigation/menu/menu-title-search.js.map +1 -1
  51. package/build/navigation/menu/menu-title.js +2 -2
  52. package/build/navigation/menu/menu-title.js.map +1 -1
  53. package/build/navigation/styles/navigation-styles.js +34 -29
  54. package/build/navigation/styles/navigation-styles.js.map +1 -1
  55. package/build/popover/index.js +4 -2
  56. package/build/popover/index.js.map +1 -1
  57. package/build/range-control/styles/range-control-styles.js +33 -29
  58. package/build/range-control/styles/range-control-styles.js.map +1 -1
  59. package/build/search-control/index.js +37 -14
  60. package/build/search-control/index.js.map +1 -1
  61. package/build/text/styles.js +7 -7
  62. package/build/text/styles.js.map +1 -1
  63. package/build/tools-panel/styles.js +18 -23
  64. package/build/tools-panel/styles.js.map +1 -1
  65. package/build/tools-panel/tools-panel/component.js +10 -7
  66. package/build/tools-panel/tools-panel/component.js.map +1 -1
  67. package/build/tools-panel/tools-panel/hook.js +3 -1
  68. package/build/tools-panel/tools-panel/hook.js.map +1 -1
  69. package/build/tools-panel/tools-panel-header/component.js +3 -0
  70. package/build/tools-panel/tools-panel-header/component.js.map +1 -1
  71. package/build/utils/hooks/index.js +8 -0
  72. package/build/utils/hooks/index.js.map +1 -1
  73. package/build/utils/hooks/use-combined-ref.js +28 -0
  74. package/build/utils/hooks/use-combined-ref.js.map +1 -0
  75. package/build-module/angle-picker-control/index.js +3 -1
  76. package/build-module/angle-picker-control/index.js.map +1 -1
  77. package/build-module/angle-picker-control/styles/angle-picker-control-styles.js +4 -4
  78. package/build-module/angle-picker-control/styles/angle-picker-control-styles.js.map +1 -1
  79. package/build-module/base-control/index.js +1 -1
  80. package/build-module/base-control/index.js.map +1 -1
  81. package/build-module/color-edit/index.js +175 -201
  82. package/build-module/color-edit/index.js.map +1 -1
  83. package/build-module/color-edit/styles.js +90 -0
  84. package/build-module/color-edit/styles.js.map +1 -0
  85. package/build-module/color-list-picker/index.js +6 -1
  86. package/build-module/color-list-picker/index.js.map +1 -1
  87. package/build-module/color-palette/index.js +85 -22
  88. package/build-module/color-palette/index.js.map +1 -1
  89. package/build-module/color-palette/styles.js +27 -0
  90. package/build-module/color-palette/styles.js.map +1 -0
  91. package/build-module/color-picker/component.js +7 -16
  92. package/build-module/color-picker/component.js.map +1 -1
  93. package/build-module/color-picker/picker.js +4 -4
  94. package/build-module/color-picker/picker.js.map +1 -1
  95. package/build-module/duotone-picker/custom-duotone-bar.js +0 -1
  96. package/build-module/duotone-picker/custom-duotone-bar.js.map +1 -1
  97. package/build-module/duotone-picker/duotone-picker.js +1 -0
  98. package/build-module/duotone-picker/duotone-picker.js.map +1 -1
  99. package/build-module/gradient-picker/index.js +67 -9
  100. package/build-module/gradient-picker/index.js.map +1 -1
  101. package/build-module/index.native.js +1 -0
  102. package/build-module/index.native.js.map +1 -1
  103. package/build-module/mobile/bottom-sheet/cell.native.js +4 -2
  104. package/build-module/mobile/bottom-sheet/cell.native.js.map +1 -1
  105. package/build-module/mobile/bottom-sheet/link-cell.native.js +3 -2
  106. package/build-module/mobile/bottom-sheet/link-cell.native.js.map +1 -1
  107. package/build-module/mobile/link-settings/image-link-destinations-screen.native.js +121 -0
  108. package/build-module/mobile/link-settings/image-link-destinations-screen.native.js.map +1 -0
  109. package/build-module/mobile/link-settings/index.native.js +3 -2
  110. package/build-module/mobile/link-settings/index.native.js.map +1 -1
  111. package/build-module/mobile/link-settings/link-settings-navigation.native.js +1 -0
  112. package/build-module/mobile/link-settings/link-settings-navigation.native.js.map +1 -1
  113. package/build-module/mobile/link-settings/link-settings-screen.native.js +11 -5
  114. package/build-module/mobile/link-settings/link-settings-screen.native.js.map +1 -1
  115. package/build-module/mobile/picker/index.android.js +4 -2
  116. package/build-module/mobile/picker/index.android.js.map +1 -1
  117. package/build-module/modal/index.js +10 -4
  118. package/build-module/modal/index.js.map +1 -1
  119. package/build-module/navigation/group/index.js +1 -2
  120. package/build-module/navigation/group/index.js.map +1 -1
  121. package/build-module/navigation/menu/menu-title-search.js +8 -24
  122. package/build-module/navigation/menu/menu-title-search.js.map +1 -1
  123. package/build-module/navigation/menu/menu-title.js +3 -3
  124. package/build-module/navigation/menu/menu-title.js.map +1 -1
  125. package/build-module/navigation/styles/navigation-styles.js +31 -27
  126. package/build-module/navigation/styles/navigation-styles.js.map +1 -1
  127. package/build-module/popover/index.js +4 -2
  128. package/build-module/popover/index.js.map +1 -1
  129. package/build-module/range-control/styles/range-control-styles.js +33 -29
  130. package/build-module/range-control/styles/range-control-styles.js.map +1 -1
  131. package/build-module/search-control/index.js +36 -15
  132. package/build-module/search-control/index.js.map +1 -1
  133. package/build-module/text/styles.js +7 -7
  134. package/build-module/text/styles.js.map +1 -1
  135. package/build-module/tools-panel/styles.js +16 -23
  136. package/build-module/tools-panel/styles.js.map +1 -1
  137. package/build-module/tools-panel/tools-panel/component.js +10 -6
  138. package/build-module/tools-panel/tools-panel/component.js.map +1 -1
  139. package/build-module/tools-panel/tools-panel/hook.js +2 -1
  140. package/build-module/tools-panel/tools-panel/hook.js.map +1 -1
  141. package/build-module/tools-panel/tools-panel-header/component.js +3 -0
  142. package/build-module/tools-panel/tools-panel-header/component.js.map +1 -1
  143. package/build-module/utils/hooks/index.js +1 -0
  144. package/build-module/utils/hooks/index.js.map +1 -1
  145. package/build-module/utils/hooks/use-combined-ref.js +25 -0
  146. package/build-module/utils/hooks/use-combined-ref.js.map +1 -0
  147. package/build-style/style-rtl.css +39 -51
  148. package/build-style/style.css +39 -51
  149. package/build-types/range-control/styles/range-control-styles.d.ts.map +1 -1
  150. package/build-types/tools-panel/styles.d.ts +1 -1
  151. package/build-types/tools-panel/styles.d.ts.map +1 -1
  152. package/build-types/tools-panel/tools-panel/component.d.ts.map +1 -1
  153. package/build-types/tools-panel/tools-panel/hook.d.ts.map +1 -1
  154. package/build-types/tools-panel/tools-panel-header/component.d.ts.map +1 -1
  155. package/build-types/utils/hooks/index.d.ts +1 -0
  156. package/build-types/utils/hooks/use-combined-ref.d.ts +8 -0
  157. package/build-types/utils/hooks/use-combined-ref.d.ts.map +1 -0
  158. package/package.json +6 -6
  159. package/src/angle-picker-control/index.js +3 -1
  160. package/src/angle-picker-control/styles/angle-picker-control-styles.js +2 -2
  161. package/src/base-control/index.js +1 -1
  162. package/src/circular-option-picker/style.scss +3 -5
  163. package/src/color-edit/index.js +248 -274
  164. package/src/color-edit/style.scss +4 -45
  165. package/src/color-edit/styles.js +97 -0
  166. package/src/color-list-picker/index.js +5 -0
  167. package/src/color-list-picker/style.scss +4 -0
  168. package/src/color-palette/index.js +90 -26
  169. package/src/color-palette/style.scss +18 -0
  170. package/src/color-palette/styles.js +19 -0
  171. package/src/color-palette/test/__snapshots__/index.js.snap +448 -414
  172. package/src/color-picker/component.tsx +6 -17
  173. package/src/color-picker/picker.tsx +6 -4
  174. package/src/color-picker/test/index.js +0 -15
  175. package/src/duotone-picker/custom-duotone-bar.js +0 -1
  176. package/src/duotone-picker/duotone-picker.js +1 -0
  177. package/src/gradient-picker/index.js +79 -11
  178. package/src/heading/test/__snapshots__/index.js.snap +1 -1
  179. package/src/index.native.js +1 -0
  180. package/src/mobile/bottom-sheet/cell.native.js +7 -2
  181. package/src/mobile/bottom-sheet/cellStyles.android.scss +5 -1
  182. package/src/mobile/bottom-sheet/cellStyles.ios.scss +5 -1
  183. package/src/mobile/bottom-sheet/link-cell.native.js +10 -3
  184. package/src/mobile/link-settings/image-link-destinations-screen.native.js +148 -0
  185. package/src/mobile/link-settings/index.native.js +3 -2
  186. package/src/mobile/link-settings/link-settings-navigation.native.js +1 -0
  187. package/src/mobile/link-settings/link-settings-screen.native.js +6 -2
  188. package/src/mobile/link-settings/style.native.scss +17 -0
  189. package/src/mobile/picker/index.android.js +2 -1
  190. package/src/modal/README.md +8 -0
  191. package/src/modal/index.js +60 -45
  192. package/src/modal/style.scss +5 -0
  193. package/src/navigation/group/index.js +1 -2
  194. package/src/navigation/menu/menu-title-search.js +11 -26
  195. package/src/navigation/menu/menu-title.js +4 -4
  196. package/src/navigation/styles/navigation-styles.js +29 -52
  197. package/src/popover/index.js +2 -2
  198. package/src/range-control/styles/range-control-styles.js +4 -1
  199. package/src/resizable-box/style.scss +5 -0
  200. package/src/search-control/index.js +47 -23
  201. package/src/style.scss +1 -0
  202. package/src/text/styles.js +1 -1
  203. package/src/text/test/__snapshots__/index.js.snap +2 -2
  204. package/src/tools-panel/stories/index.js +21 -19
  205. package/src/tools-panel/styles.ts +18 -26
  206. package/src/tools-panel/tools-panel/component.tsx +7 -4
  207. package/src/tools-panel/tools-panel/hook.ts +4 -1
  208. package/src/tools-panel/tools-panel-header/component.tsx +1 -0
  209. package/src/ui/control-label/test/__snapshots__/index.js.snap +3 -3
  210. package/src/ui/form-group/test/__snapshots__/index.js.snap +2 -2
  211. package/src/utils/hooks/index.js +1 -0
  212. package/src/utils/hooks/use-combined-ref.ts +29 -0
  213. package/tsconfig.tsbuildinfo +1 -1
@@ -0,0 +1,140 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _element = require("@wordpress/element");
11
+
12
+ var _native = require("@react-navigation/native");
13
+
14
+ var _reactNative = require("react-native");
15
+
16
+ var _i18n = require("@wordpress/i18n");
17
+
18
+ var _icons = require("@wordpress/icons");
19
+
20
+ var _blockEditor = require("@wordpress/block-editor");
21
+
22
+ var _compose = require("@wordpress/compose");
23
+
24
+ var _style = _interopRequireDefault(require("./style.scss"));
25
+
26
+ var _body = _interopRequireDefault(require("../../panel/body"));
27
+
28
+ var _bottomSheet = _interopRequireDefault(require("../bottom-sheet"));
29
+
30
+ /**
31
+ * External dependencies
32
+ */
33
+
34
+ /**
35
+ * WordPress dependencies
36
+ */
37
+
38
+ /**
39
+ * Internal dependencies
40
+ */
41
+ const LINK_DESTINATION_NONE = 'none';
42
+ const LINK_DESTINATION_MEDIA = 'media';
43
+ const LINK_DESTINATION_ATTACHMENT = 'attachment';
44
+ const LINK_DESTINATION_CUSTOM = 'custom';
45
+
46
+ function LinkDestination({
47
+ children,
48
+ isSelected,
49
+ label,
50
+ onPress,
51
+ value,
52
+ valueStyle
53
+ }) {
54
+ const optionIcon = (0, _compose.usePreferredColorSchemeStyle)(_style.default.optionIcon, _style.default.optionIconDark);
55
+ return (0, _element.createElement)(_bottomSheet.default.Cell, {
56
+ icon: _icons.check,
57
+ iconStyle: _reactNative.StyleSheet.flatten([optionIcon, !isSelected && _style.default.unselectedOptionIcon]),
58
+ label: label,
59
+ leftAlign: true,
60
+ onPress: onPress,
61
+ value: value,
62
+ valueStyle: valueStyle,
63
+ separatorType: "leftMargin"
64
+ }, children);
65
+ }
66
+
67
+ function ImageLinkDestinationsScreen(props) {
68
+ const navigation = (0, _native.useNavigation)();
69
+ const route = (0, _native.useRoute)();
70
+ const {
71
+ url = ''
72
+ } = props;
73
+ const {
74
+ inputValue = url,
75
+ imageUrl,
76
+ attachmentPageUrl,
77
+ linkDestination
78
+ } = route.params || {};
79
+
80
+ function goToLinkPicker() {
81
+ navigation.navigate(_blockEditor.blockSettingsScreens.linkPicker, {
82
+ inputValue: linkDestination === LINK_DESTINATION_CUSTOM ? inputValue : ''
83
+ });
84
+ }
85
+
86
+ const setLinkDestination = newLinkDestination => () => {
87
+ let newUrl;
88
+
89
+ switch (newLinkDestination) {
90
+ case LINK_DESTINATION_MEDIA:
91
+ newUrl = imageUrl;
92
+ break;
93
+
94
+ case LINK_DESTINATION_ATTACHMENT:
95
+ newUrl = attachmentPageUrl;
96
+ break;
97
+
98
+ default:
99
+ newUrl = '';
100
+ break;
101
+ }
102
+
103
+ navigation.navigate(_blockEditor.blockSettingsScreens.settings, {
104
+ // The `inputValue` name is reused from LinkPicker, as it helps avoid
105
+ // bugs from stale values remaining in the React Navigation route
106
+ // parameters
107
+ inputValue: newUrl,
108
+ // Clear link text value that may be set from LinkPicker
109
+ text: ''
110
+ });
111
+ };
112
+
113
+ return (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_bottomSheet.default.NavBar, null, (0, _element.createElement)(_bottomSheet.default.NavBar.BackButton, {
114
+ onPress: navigation.goBack
115
+ }), (0, _element.createElement)(_bottomSheet.default.NavBar.Heading, null, (0, _i18n.__)('Link To'))), (0, _element.createElement)(_body.default, null, (0, _element.createElement)(LinkDestination, {
116
+ isSelected: linkDestination === LINK_DESTINATION_NONE,
117
+ label: (0, _i18n.__)('None'),
118
+ onPress: setLinkDestination(LINK_DESTINATION_NONE)
119
+ }), (0, _element.createElement)(LinkDestination, {
120
+ isSelected: linkDestination === LINK_DESTINATION_MEDIA,
121
+ label: (0, _i18n.__)('Media File'),
122
+ onPress: setLinkDestination(LINK_DESTINATION_MEDIA)
123
+ }), !!attachmentPageUrl && (0, _element.createElement)(LinkDestination, {
124
+ isSelected: linkDestination === LINK_DESTINATION_ATTACHMENT,
125
+ label: (0, _i18n.__)('Attachment Page'),
126
+ onPress: setLinkDestination(LINK_DESTINATION_ATTACHMENT)
127
+ }), (0, _element.createElement)(LinkDestination, {
128
+ isSelected: linkDestination === LINK_DESTINATION_CUSTOM,
129
+ label: (0, _i18n.__)('Custom URL'),
130
+ onPress: goToLinkPicker,
131
+ value: linkDestination === LINK_DESTINATION_CUSTOM ? inputValue : '',
132
+ valueStyle: linkDestination === LINK_DESTINATION_CUSTOM ? undefined : _style.default.placeholderTextColor
133
+ }, (0, _element.createElement)(_icons.Icon, {
134
+ icon: _icons.chevronRight
135
+ }))));
136
+ }
137
+
138
+ var _default = ImageLinkDestinationsScreen;
139
+ exports.default = _default;
140
+ //# sourceMappingURL=image-link-destinations-screen.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/components/src/mobile/link-settings/image-link-destinations-screen.native.js"],"names":["LINK_DESTINATION_NONE","LINK_DESTINATION_MEDIA","LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_CUSTOM","LinkDestination","children","isSelected","label","onPress","value","valueStyle","optionIcon","styles","optionIconDark","check","StyleSheet","flatten","unselectedOptionIcon","ImageLinkDestinationsScreen","props","navigation","route","url","inputValue","imageUrl","attachmentPageUrl","linkDestination","params","goToLinkPicker","navigate","blockSettingsScreens","linkPicker","setLinkDestination","newLinkDestination","newUrl","settings","text","goBack","undefined","placeholderTextColor","chevronRight"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { useNavigation, useRoute } from '@react-navigation/native';\nimport { StyleSheet } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Icon, check, chevronRight } from '@wordpress/icons';\nimport { blockSettingsScreens } from '@wordpress/block-editor';\nimport { usePreferredColorSchemeStyle } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\nimport PanelBody from '../../panel/body';\nimport BottomSheet from '../bottom-sheet';\n\nconst LINK_DESTINATION_NONE = 'none';\nconst LINK_DESTINATION_MEDIA = 'media';\nconst LINK_DESTINATION_ATTACHMENT = 'attachment';\nconst LINK_DESTINATION_CUSTOM = 'custom';\n\nfunction LinkDestination( {\n\tchildren,\n\tisSelected,\n\tlabel,\n\tonPress,\n\tvalue,\n\tvalueStyle,\n} ) {\n\tconst optionIcon = usePreferredColorSchemeStyle(\n\t\tstyles.optionIcon,\n\t\tstyles.optionIconDark\n\t);\n\treturn (\n\t\t<BottomSheet.Cell\n\t\t\ticon={ check }\n\t\t\ticonStyle={ StyleSheet.flatten( [\n\t\t\t\toptionIcon,\n\t\t\t\t! isSelected && styles.unselectedOptionIcon,\n\t\t\t] ) }\n\t\t\tlabel={ label }\n\t\t\tleftAlign\n\t\t\tonPress={ onPress }\n\t\t\tvalue={ value }\n\t\t\tvalueStyle={ valueStyle }\n\t\t\tseparatorType=\"leftMargin\"\n\t\t>\n\t\t\t{ children }\n\t\t</BottomSheet.Cell>\n\t);\n}\n\nfunction ImageLinkDestinationsScreen( props ) {\n\tconst navigation = useNavigation();\n\tconst route = useRoute();\n\tconst { url = '' } = props;\n\tconst { inputValue = url, imageUrl, attachmentPageUrl, linkDestination } =\n\t\troute.params || {};\n\n\tfunction goToLinkPicker() {\n\t\tnavigation.navigate( blockSettingsScreens.linkPicker, {\n\t\t\tinputValue:\n\t\t\t\tlinkDestination === LINK_DESTINATION_CUSTOM ? inputValue : '',\n\t\t} );\n\t}\n\n\tconst setLinkDestination = ( newLinkDestination ) => () => {\n\t\tlet newUrl;\n\t\tswitch ( newLinkDestination ) {\n\t\t\tcase LINK_DESTINATION_MEDIA:\n\t\t\t\tnewUrl = imageUrl;\n\t\t\t\tbreak;\n\t\t\tcase LINK_DESTINATION_ATTACHMENT:\n\t\t\t\tnewUrl = attachmentPageUrl;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tnewUrl = '';\n\t\t\t\tbreak;\n\t\t}\n\n\t\tnavigation.navigate( blockSettingsScreens.settings, {\n\t\t\t// The `inputValue` name is reused from LinkPicker, as it helps avoid\n\t\t\t// bugs from stale values remaining in the React Navigation route\n\t\t\t// parameters\n\t\t\tinputValue: newUrl,\n\t\t\t// Clear link text value that may be set from LinkPicker\n\t\t\ttext: '',\n\t\t} );\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<BottomSheet.NavBar>\n\t\t\t\t<BottomSheet.NavBar.BackButton onPress={ navigation.goBack } />\n\t\t\t\t<BottomSheet.NavBar.Heading>\n\t\t\t\t\t{ __( 'Link To' ) }\n\t\t\t\t</BottomSheet.NavBar.Heading>\n\t\t\t</BottomSheet.NavBar>\n\t\t\t<PanelBody>\n\t\t\t\t<LinkDestination\n\t\t\t\t\tisSelected={ linkDestination === LINK_DESTINATION_NONE }\n\t\t\t\t\tlabel={ __( 'None' ) }\n\t\t\t\t\tonPress={ setLinkDestination( LINK_DESTINATION_NONE ) }\n\t\t\t\t/>\n\t\t\t\t<LinkDestination\n\t\t\t\t\tisSelected={ linkDestination === LINK_DESTINATION_MEDIA }\n\t\t\t\t\tlabel={ __( 'Media File' ) }\n\t\t\t\t\tonPress={ setLinkDestination( LINK_DESTINATION_MEDIA ) }\n\t\t\t\t/>\n\t\t\t\t{ !! attachmentPageUrl && (\n\t\t\t\t\t<LinkDestination\n\t\t\t\t\t\tisSelected={\n\t\t\t\t\t\t\tlinkDestination === LINK_DESTINATION_ATTACHMENT\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlabel={ __( 'Attachment Page' ) }\n\t\t\t\t\t\tonPress={ setLinkDestination(\n\t\t\t\t\t\t\tLINK_DESTINATION_ATTACHMENT\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t<LinkDestination\n\t\t\t\t\tisSelected={ linkDestination === LINK_DESTINATION_CUSTOM }\n\t\t\t\t\tlabel={ __( 'Custom URL' ) }\n\t\t\t\t\tonPress={ goToLinkPicker }\n\t\t\t\t\tvalue={\n\t\t\t\t\t\tlinkDestination === LINK_DESTINATION_CUSTOM\n\t\t\t\t\t\t\t? inputValue\n\t\t\t\t\t\t\t: ''\n\t\t\t\t\t}\n\t\t\t\t\tvalueStyle={\n\t\t\t\t\t\tlinkDestination === LINK_DESTINATION_CUSTOM\n\t\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t\t: styles.placeholderTextColor\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t<Icon icon={ chevronRight }></Icon>\n\t\t\t\t</LinkDestination>\n\t\t\t</PanelBody>\n\t\t</>\n\t);\n}\n\nexport default ImageLinkDestinationsScreen;\n"]}
@@ -103,9 +103,9 @@ function LinkSettings({
103
103
  urlValue,
104
104
  // Attributes properties
105
105
  url,
106
- label,
106
+ label = '',
107
107
  linkTarget,
108
- rel
108
+ rel = ''
109
109
  }) {
110
110
  const [urlInputValue, setUrlInputValue] = (0, _element.useState)('');
111
111
  const [labelInputValue, setLabelInputValue] = (0, _element.useState)('');
@@ -224,6 +224,7 @@ function LinkSettings({
224
224
  return (0, _element.createElement)(_element.Fragment, null, options.url && (onLinkCellPressed ? (0, _element.createElement)(_bottomSheet.default.LinkCell, {
225
225
  showIcon: showIcon,
226
226
  value: url,
227
+ valueMask: options.url.valueMask,
227
228
  onPress: onLinkCellPressed
228
229
  }) : (0, _element.createElement)(_textControl.default, {
229
230
  icon: showIcon && _icons.link,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/mobile/link-settings/index.native.js"],"names":["NEW_TAB_REL","LinkSettings","isVisible","onClose","setAttributes","onEmptyURL","options","withBottomSheet","actions","editorSidebarOpened","showIcon","onLinkCellPressed","urlValue","url","label","linkTarget","rel","urlInputValue","setUrlInputValue","labelInputValue","setLabelInputValue","linkRelInputValue","setLinkRelInputValue","prevEditorSidebarOpenedRef","onHandleClosingBottomSheet","BottomSheetContext","onCloseSettingsSheet","current","prevEditorSidebarOpened","isSettingSheetOpen","autoFill","getURLFromClipboard","onSetAttributes","onChangeURL","value","onChangeLabel","newURL","onChangeOpenInNewTab","newLinkTarget","undefined","updatedRel","onChangeLinkRel","clipboardText","Clipboard","getString","getSettings","link","placeholder","Platform","OS","autoFocus","linkLabel","openInNewTab","external","linkRel","LinkRelIcon","styles","linkSettingsPanel","footer","separatorType","select","isEditorSidebarOpened"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { Platform, Clipboard } from 'react-native';\n/**\n * WordPress dependencies\n */\nimport { compose } from '@wordpress/compose';\nimport { withSelect } from '@wordpress/data';\nimport { isURL, prependHTTP } from '@wordpress/url';\nimport {\n\tuseEffect,\n\tuseState,\n\tuseRef,\n\tuseContext,\n\tuseCallback,\n} from '@wordpress/element';\nimport { link, external } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport BottomSheet from '../bottom-sheet';\nimport { BottomSheetContext } from '../bottom-sheet/bottom-sheet-context';\nimport PanelBody from '../../panel/body';\nimport TextControl from '../../text-control';\nimport ToggleControl from '../../toggle-control';\nimport FooterMessageControl from '../../footer-message-control';\nimport PanelActions from '../../panel/actions';\nimport LinkRelIcon from './link-rel';\n\nimport styles from './style.scss';\n\nconst NEW_TAB_REL = 'noreferrer noopener';\n\nfunction LinkSettings( {\n\t// Control link settings `BottomSheet` visibility\n\tisVisible,\n\t// Callback that is called on closing bottom sheet\n\tonClose,\n\t// Function called to set attributes\n\tsetAttributes,\n\t// Callback that is called when url input field is empty\n\tonEmptyURL,\n\t// Object of available options along with specific, customizable properties.\n\t// Available options keys:\n\t//\t* url - uses `TextControl` component to set `attributes.url`\n\t//\t* linkLabel - uses `TextControl` component to set `attributes.label`\n\t//\t* openInNewTab - uses `ToggleControl` component to set `attributes.linkTarget` and `attributes.rel`\n\t//\t* linkRel - uses `TextControl` component to set `attributes.rel`\n\t//\t* footer - uses `FooterMessageControl` component to display message, e.g. about missing functionality\n\t// Available properties:\n\t//\t* label - control component label, e.g. `Button Link URL`\n\t//\t* placeholder - control component placeholder, e.g. `Add URL`\n\t//\t* autoFocus (url only) - whether url input should be focused on sheet opening\n\t//\t* autoFill (url only) - whether url input should be filled with url from clipboard\n\t// Example:\n\t//\tconst options = {\n\t//\t\turl: {\n\t//\t\t\tlabel: __( 'Button Link URL' ),\n\t//\t\t\tplaceholder: __( 'Add URL' ),\n\t//\t\t\tautoFocus: true,\n\t//\t\t\tautoFill: true,\n\t//\t\t}\n\t//\t}\n\toptions,\n\t// Specifies whether settings should be wrapped into `BottomSheet`\n\twithBottomSheet,\n\t// Defines buttons which will be displayed below the all options.\n\t// It's an array of objects with following properties:\n\t//\t* label - button title\n\t//\t* onPress - callback that is called on pressing button\n\t// Example:\n\t// \tconst actions = [\n\t//\t\t{\n\t//\t\t\tlabel: __( 'Remove link' ),\n\t//\t\t\tonPress: () => setAttributes({ url: '' }),\n\t//\t\t},\n\t//\t];\n\tactions,\n\t// Specifies whether general `BottomSheet` is opened\n\teditorSidebarOpened,\n\t// Specifies whether icon should be displayed next to the label\n\tshowIcon,\n\tonLinkCellPressed,\n\turlValue,\n\t// Attributes properties\n\turl,\n\tlabel,\n\tlinkTarget,\n\trel,\n} ) {\n\tconst [ urlInputValue, setUrlInputValue ] = useState( '' );\n\tconst [ labelInputValue, setLabelInputValue ] = useState( '' );\n\tconst [ linkRelInputValue, setLinkRelInputValue ] = useState( '' );\n\tconst prevEditorSidebarOpenedRef = useRef();\n\n\tconst { onHandleClosingBottomSheet } = useContext( BottomSheetContext );\n\tuseEffect( () => {\n\t\tif ( onHandleClosingBottomSheet ) {\n\t\t\tonHandleClosingBottomSheet( onCloseSettingsSheet );\n\t\t}\n\t}, [ urlInputValue, labelInputValue, linkRelInputValue ] );\n\n\tuseEffect( () => {\n\t\tprevEditorSidebarOpenedRef.current = editorSidebarOpened;\n\t} );\n\tconst prevEditorSidebarOpened = prevEditorSidebarOpenedRef.current;\n\n\tuseEffect( () => {\n\t\tif ( url !== urlInputValue ) {\n\t\t\tsetUrlInputValue( url || '' );\n\t\t}\n\t}, [ url ] );\n\n\tuseEffect( () => {\n\t\tsetLabelInputValue( label || '' );\n\t}, [ label ] );\n\n\tuseEffect( () => {\n\t\tsetLinkRelInputValue( rel || '' );\n\t}, [ rel ] );\n\n\tuseEffect( () => {\n\t\tconst isSettingSheetOpen = isVisible || editorSidebarOpened;\n\t\tif ( options.url.autoFill && isSettingSheetOpen && ! url ) {\n\t\t\tgetURLFromClipboard();\n\t\t}\n\n\t\tif ( prevEditorSidebarOpened && ! editorSidebarOpened ) {\n\t\t\tonSetAttributes();\n\t\t}\n\t}, [ editorSidebarOpened, isVisible ] );\n\n\tuseEffect( () => {\n\t\tif ( ! urlValue && onEmptyURL ) {\n\t\t\tonEmptyURL();\n\t\t}\n\n\t\tif ( prependHTTP( urlValue ) !== url ) {\n\t\t\tsetAttributes( {\n\t\t\t\turl: prependHTTP( urlValue ),\n\t\t\t} );\n\t\t}\n\t}, [ urlValue ] );\n\n\tconst onChangeURL = useCallback(\n\t\t( value ) => {\n\t\t\tif ( ! value && onEmptyURL ) {\n\t\t\t\tonEmptyURL();\n\t\t\t}\n\t\t\tsetUrlInputValue( value );\n\t\t},\n\t\t[ onEmptyURL ]\n\t);\n\n\tconst onChangeLabel = useCallback( ( value ) => {\n\t\tsetLabelInputValue( value );\n\t}, [] );\n\n\tconst onSetAttributes = useCallback( () => {\n\t\tconst newURL = prependHTTP( urlInputValue );\n\t\tif (\n\t\t\turl !== newURL ||\n\t\t\tlabelInputValue !== label ||\n\t\t\tlinkRelInputValue !== rel\n\t\t) {\n\t\t\tsetAttributes( {\n\t\t\t\turl: newURL,\n\t\t\t\tlabel: labelInputValue,\n\t\t\t\trel: linkRelInputValue,\n\t\t\t} );\n\t\t}\n\t}, [ urlInputValue, labelInputValue, linkRelInputValue, setAttributes ] );\n\n\tconst onCloseSettingsSheet = useCallback( () => {\n\t\tonSetAttributes();\n\n\t\tif ( onClose ) {\n\t\t\tonClose();\n\t\t}\n\t}, [ onClose, onSetAttributes ] );\n\n\tconst onChangeOpenInNewTab = useCallback(\n\t\t( value ) => {\n\t\t\tconst newLinkTarget = value ? '_blank' : undefined;\n\n\t\t\tlet updatedRel = linkRelInputValue;\n\t\t\tif ( newLinkTarget && ! linkRelInputValue ) {\n\t\t\t\tupdatedRel = NEW_TAB_REL;\n\t\t\t} else if ( ! newLinkTarget && linkRelInputValue === NEW_TAB_REL ) {\n\t\t\t\tupdatedRel = undefined;\n\t\t\t}\n\n\t\t\tsetAttributes( {\n\t\t\t\tlinkTarget: newLinkTarget,\n\t\t\t\trel: updatedRel,\n\t\t\t} );\n\t\t},\n\t\t[ linkRelInputValue ]\n\t);\n\n\tconst onChangeLinkRel = useCallback( ( value ) => {\n\t\tsetLinkRelInputValue( value );\n\t}, [] );\n\n\tasync function getURLFromClipboard() {\n\t\tconst clipboardText = await Clipboard.getString();\n\n\t\tif ( ! clipboardText ) {\n\t\t\treturn;\n\t\t}\n\t\t// Check if pasted text is URL\n\t\tif ( ! isURL( clipboardText ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetAttributes( { url: clipboardText } );\n\t}\n\n\tfunction getSettings() {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ options.url &&\n\t\t\t\t\t( onLinkCellPressed ? (\n\t\t\t\t\t\t<BottomSheet.LinkCell\n\t\t\t\t\t\t\tshowIcon={ showIcon }\n\t\t\t\t\t\t\tvalue={ url }\n\t\t\t\t\t\t\tonPress={ onLinkCellPressed }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\ticon={ showIcon && link }\n\t\t\t\t\t\t\tlabel={ options.url.label }\n\t\t\t\t\t\t\tvalue={ urlInputValue }\n\t\t\t\t\t\t\tvaluePlaceholder={ options.url.placeholder }\n\t\t\t\t\t\t\tonChange={ onChangeURL }\n\t\t\t\t\t\t\tonSubmit={ onCloseSettingsSheet }\n\t\t\t\t\t\t\tautoCapitalize=\"none\"\n\t\t\t\t\t\t\tautoCorrect={ false }\n\t\t\t\t\t\t\t// eslint-disable-next-line jsx-a11y/no-autofocus\n\t\t\t\t\t\t\tautoFocus={\n\t\t\t\t\t\t\t\tPlatform.OS === 'ios' && options.url.autoFocus\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tkeyboardType=\"url\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t) ) }\n\t\t\t\t{ options.linkLabel && (\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\tlabel={ options.linkLabel.label }\n\t\t\t\t\t\tvalue={ labelInputValue }\n\t\t\t\t\t\tvaluePlaceholder={ options.linkLabel.placeholder }\n\t\t\t\t\t\tonChange={ onChangeLabel }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ !! urlInputValue && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{ options.openInNewTab && (\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\ticon={ showIcon && external }\n\t\t\t\t\t\t\t\tlabel={ options.openInNewTab.label }\n\t\t\t\t\t\t\t\tchecked={ linkTarget === '_blank' }\n\t\t\t\t\t\t\t\tonChange={ onChangeOpenInNewTab }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ options.linkRel && (\n\t\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t\ticon={ showIcon && LinkRelIcon }\n\t\t\t\t\t\t\t\tlabel={ options.linkRel.label }\n\t\t\t\t\t\t\t\tvalue={ linkRelInputValue }\n\t\t\t\t\t\t\t\tvaluePlaceholder={ options.linkRel.placeholder }\n\t\t\t\t\t\t\t\tonChange={ onChangeLinkRel }\n\t\t\t\t\t\t\t\tonSubmit={ onCloseSettingsSheet }\n\t\t\t\t\t\t\t\tautoCapitalize=\"none\"\n\t\t\t\t\t\t\t\tautoCorrect={ false }\n\t\t\t\t\t\t\t\tkeyboardType=\"default\"\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) }\n\t\t\t</>\n\t\t);\n\t}\n\n\tif ( ! withBottomSheet ) {\n\t\treturn getSettings();\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<PanelBody style={ styles.linkSettingsPanel }>\n\t\t\t\t{ getSettings() }\n\t\t\t</PanelBody>\n\t\t\t{ options.footer && (\n\t\t\t\t<PanelBody style={ styles.linkSettingsPanel }>\n\t\t\t\t\t<FooterMessageControl\n\t\t\t\t\t\tlabel={ options.footer.label }\n\t\t\t\t\t\tseparatorType={ options.footer.separatorType }\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t) }\n\t\t\t{ actions && <PanelActions actions={ actions } /> }\n\t\t</>\n\t);\n}\n\nexport default compose( [\n\twithSelect( ( select ) => {\n\t\tconst { isEditorSidebarOpened } = select( 'core/edit-post' );\n\t\treturn {\n\t\t\teditorSidebarOpened: isEditorSidebarOpened(),\n\t\t};\n\t} ),\n] )( LinkSettings );\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/mobile/link-settings/index.native.js"],"names":["NEW_TAB_REL","LinkSettings","isVisible","onClose","setAttributes","onEmptyURL","options","withBottomSheet","actions","editorSidebarOpened","showIcon","onLinkCellPressed","urlValue","url","label","linkTarget","rel","urlInputValue","setUrlInputValue","labelInputValue","setLabelInputValue","linkRelInputValue","setLinkRelInputValue","prevEditorSidebarOpenedRef","onHandleClosingBottomSheet","BottomSheetContext","onCloseSettingsSheet","current","prevEditorSidebarOpened","isSettingSheetOpen","autoFill","getURLFromClipboard","onSetAttributes","onChangeURL","value","onChangeLabel","newURL","onChangeOpenInNewTab","newLinkTarget","undefined","updatedRel","onChangeLinkRel","clipboardText","Clipboard","getString","getSettings","valueMask","link","placeholder","Platform","OS","autoFocus","linkLabel","openInNewTab","external","linkRel","LinkRelIcon","styles","linkSettingsPanel","footer","separatorType","select","isEditorSidebarOpened"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { Platform, Clipboard } from 'react-native';\n/**\n * WordPress dependencies\n */\nimport { compose } from '@wordpress/compose';\nimport { withSelect } from '@wordpress/data';\nimport { isURL, prependHTTP } from '@wordpress/url';\nimport {\n\tuseEffect,\n\tuseState,\n\tuseRef,\n\tuseContext,\n\tuseCallback,\n} from '@wordpress/element';\nimport { link, external } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport BottomSheet from '../bottom-sheet';\nimport { BottomSheetContext } from '../bottom-sheet/bottom-sheet-context';\nimport PanelBody from '../../panel/body';\nimport TextControl from '../../text-control';\nimport ToggleControl from '../../toggle-control';\nimport FooterMessageControl from '../../footer-message-control';\nimport PanelActions from '../../panel/actions';\nimport LinkRelIcon from './link-rel';\n\nimport styles from './style.scss';\n\nconst NEW_TAB_REL = 'noreferrer noopener';\n\nfunction LinkSettings( {\n\t// Control link settings `BottomSheet` visibility\n\tisVisible,\n\t// Callback that is called on closing bottom sheet\n\tonClose,\n\t// Function called to set attributes\n\tsetAttributes,\n\t// Callback that is called when url input field is empty\n\tonEmptyURL,\n\t// Object of available options along with specific, customizable properties.\n\t// Available options keys:\n\t//\t* url - uses `TextControl` component to set `attributes.url`\n\t//\t* linkLabel - uses `TextControl` component to set `attributes.label`\n\t//\t* openInNewTab - uses `ToggleControl` component to set `attributes.linkTarget` and `attributes.rel`\n\t//\t* linkRel - uses `TextControl` component to set `attributes.rel`\n\t//\t* footer - uses `FooterMessageControl` component to display message, e.g. about missing functionality\n\t// Available properties:\n\t//\t* label - control component label, e.g. `Button Link URL`\n\t//\t* placeholder - control component placeholder, e.g. `Add URL`\n\t//\t* autoFocus (url only) - whether url input should be focused on sheet opening\n\t//\t* autoFill (url only) - whether url input should be filled with url from clipboard\n\t// Example:\n\t//\tconst options = {\n\t//\t\turl: {\n\t//\t\t\tlabel: __( 'Button Link URL' ),\n\t//\t\t\tplaceholder: __( 'Add URL' ),\n\t//\t\t\tautoFocus: true,\n\t//\t\t\tautoFill: true,\n\t//\t\t}\n\t//\t}\n\toptions,\n\t// Specifies whether settings should be wrapped into `BottomSheet`\n\twithBottomSheet,\n\t// Defines buttons which will be displayed below the all options.\n\t// It's an array of objects with following properties:\n\t//\t* label - button title\n\t//\t* onPress - callback that is called on pressing button\n\t// Example:\n\t// \tconst actions = [\n\t//\t\t{\n\t//\t\t\tlabel: __( 'Remove link' ),\n\t//\t\t\tonPress: () => setAttributes({ url: '' }),\n\t//\t\t},\n\t//\t];\n\tactions,\n\t// Specifies whether general `BottomSheet` is opened\n\teditorSidebarOpened,\n\t// Specifies whether icon should be displayed next to the label\n\tshowIcon,\n\tonLinkCellPressed,\n\turlValue,\n\t// Attributes properties\n\turl,\n\tlabel = '',\n\tlinkTarget,\n\trel = '',\n} ) {\n\tconst [ urlInputValue, setUrlInputValue ] = useState( '' );\n\tconst [ labelInputValue, setLabelInputValue ] = useState( '' );\n\tconst [ linkRelInputValue, setLinkRelInputValue ] = useState( '' );\n\tconst prevEditorSidebarOpenedRef = useRef();\n\n\tconst { onHandleClosingBottomSheet } = useContext( BottomSheetContext );\n\tuseEffect( () => {\n\t\tif ( onHandleClosingBottomSheet ) {\n\t\t\tonHandleClosingBottomSheet( onCloseSettingsSheet );\n\t\t}\n\t}, [ urlInputValue, labelInputValue, linkRelInputValue ] );\n\n\tuseEffect( () => {\n\t\tprevEditorSidebarOpenedRef.current = editorSidebarOpened;\n\t} );\n\tconst prevEditorSidebarOpened = prevEditorSidebarOpenedRef.current;\n\n\tuseEffect( () => {\n\t\tif ( url !== urlInputValue ) {\n\t\t\tsetUrlInputValue( url || '' );\n\t\t}\n\t}, [ url ] );\n\n\tuseEffect( () => {\n\t\tsetLabelInputValue( label || '' );\n\t}, [ label ] );\n\n\tuseEffect( () => {\n\t\tsetLinkRelInputValue( rel || '' );\n\t}, [ rel ] );\n\n\tuseEffect( () => {\n\t\tconst isSettingSheetOpen = isVisible || editorSidebarOpened;\n\t\tif ( options.url.autoFill && isSettingSheetOpen && ! url ) {\n\t\t\tgetURLFromClipboard();\n\t\t}\n\n\t\tif ( prevEditorSidebarOpened && ! editorSidebarOpened ) {\n\t\t\tonSetAttributes();\n\t\t}\n\t}, [ editorSidebarOpened, isVisible ] );\n\n\tuseEffect( () => {\n\t\tif ( ! urlValue && onEmptyURL ) {\n\t\t\tonEmptyURL();\n\t\t}\n\n\t\tif ( prependHTTP( urlValue ) !== url ) {\n\t\t\tsetAttributes( {\n\t\t\t\turl: prependHTTP( urlValue ),\n\t\t\t} );\n\t\t}\n\t}, [ urlValue ] );\n\n\tconst onChangeURL = useCallback(\n\t\t( value ) => {\n\t\t\tif ( ! value && onEmptyURL ) {\n\t\t\t\tonEmptyURL();\n\t\t\t}\n\t\t\tsetUrlInputValue( value );\n\t\t},\n\t\t[ onEmptyURL ]\n\t);\n\n\tconst onChangeLabel = useCallback( ( value ) => {\n\t\tsetLabelInputValue( value );\n\t}, [] );\n\n\tconst onSetAttributes = useCallback( () => {\n\t\tconst newURL = prependHTTP( urlInputValue );\n\t\tif (\n\t\t\turl !== newURL ||\n\t\t\tlabelInputValue !== label ||\n\t\t\tlinkRelInputValue !== rel\n\t\t) {\n\t\t\tsetAttributes( {\n\t\t\t\turl: newURL,\n\t\t\t\tlabel: labelInputValue,\n\t\t\t\trel: linkRelInputValue,\n\t\t\t} );\n\t\t}\n\t}, [ urlInputValue, labelInputValue, linkRelInputValue, setAttributes ] );\n\n\tconst onCloseSettingsSheet = useCallback( () => {\n\t\tonSetAttributes();\n\n\t\tif ( onClose ) {\n\t\t\tonClose();\n\t\t}\n\t}, [ onClose, onSetAttributes ] );\n\n\tconst onChangeOpenInNewTab = useCallback(\n\t\t( value ) => {\n\t\t\tconst newLinkTarget = value ? '_blank' : undefined;\n\n\t\t\tlet updatedRel = linkRelInputValue;\n\t\t\tif ( newLinkTarget && ! linkRelInputValue ) {\n\t\t\t\tupdatedRel = NEW_TAB_REL;\n\t\t\t} else if ( ! newLinkTarget && linkRelInputValue === NEW_TAB_REL ) {\n\t\t\t\tupdatedRel = undefined;\n\t\t\t}\n\n\t\t\tsetAttributes( {\n\t\t\t\tlinkTarget: newLinkTarget,\n\t\t\t\trel: updatedRel,\n\t\t\t} );\n\t\t},\n\t\t[ linkRelInputValue ]\n\t);\n\n\tconst onChangeLinkRel = useCallback( ( value ) => {\n\t\tsetLinkRelInputValue( value );\n\t}, [] );\n\n\tasync function getURLFromClipboard() {\n\t\tconst clipboardText = await Clipboard.getString();\n\n\t\tif ( ! clipboardText ) {\n\t\t\treturn;\n\t\t}\n\t\t// Check if pasted text is URL\n\t\tif ( ! isURL( clipboardText ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetAttributes( { url: clipboardText } );\n\t}\n\n\tfunction getSettings() {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ options.url &&\n\t\t\t\t\t( onLinkCellPressed ? (\n\t\t\t\t\t\t<BottomSheet.LinkCell\n\t\t\t\t\t\t\tshowIcon={ showIcon }\n\t\t\t\t\t\t\tvalue={ url }\n\t\t\t\t\t\t\tvalueMask={ options.url.valueMask }\n\t\t\t\t\t\t\tonPress={ onLinkCellPressed }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\ticon={ showIcon && link }\n\t\t\t\t\t\t\tlabel={ options.url.label }\n\t\t\t\t\t\t\tvalue={ urlInputValue }\n\t\t\t\t\t\t\tvaluePlaceholder={ options.url.placeholder }\n\t\t\t\t\t\t\tonChange={ onChangeURL }\n\t\t\t\t\t\t\tonSubmit={ onCloseSettingsSheet }\n\t\t\t\t\t\t\tautoCapitalize=\"none\"\n\t\t\t\t\t\t\tautoCorrect={ false }\n\t\t\t\t\t\t\t// eslint-disable-next-line jsx-a11y/no-autofocus\n\t\t\t\t\t\t\tautoFocus={\n\t\t\t\t\t\t\t\tPlatform.OS === 'ios' && options.url.autoFocus\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tkeyboardType=\"url\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t) ) }\n\t\t\t\t{ options.linkLabel && (\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\tlabel={ options.linkLabel.label }\n\t\t\t\t\t\tvalue={ labelInputValue }\n\t\t\t\t\t\tvaluePlaceholder={ options.linkLabel.placeholder }\n\t\t\t\t\t\tonChange={ onChangeLabel }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ !! urlInputValue && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{ options.openInNewTab && (\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\ticon={ showIcon && external }\n\t\t\t\t\t\t\t\tlabel={ options.openInNewTab.label }\n\t\t\t\t\t\t\t\tchecked={ linkTarget === '_blank' }\n\t\t\t\t\t\t\t\tonChange={ onChangeOpenInNewTab }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ options.linkRel && (\n\t\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t\ticon={ showIcon && LinkRelIcon }\n\t\t\t\t\t\t\t\tlabel={ options.linkRel.label }\n\t\t\t\t\t\t\t\tvalue={ linkRelInputValue }\n\t\t\t\t\t\t\t\tvaluePlaceholder={ options.linkRel.placeholder }\n\t\t\t\t\t\t\t\tonChange={ onChangeLinkRel }\n\t\t\t\t\t\t\t\tonSubmit={ onCloseSettingsSheet }\n\t\t\t\t\t\t\t\tautoCapitalize=\"none\"\n\t\t\t\t\t\t\t\tautoCorrect={ false }\n\t\t\t\t\t\t\t\tkeyboardType=\"default\"\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) }\n\t\t\t</>\n\t\t);\n\t}\n\n\tif ( ! withBottomSheet ) {\n\t\treturn getSettings();\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<PanelBody style={ styles.linkSettingsPanel }>\n\t\t\t\t{ getSettings() }\n\t\t\t</PanelBody>\n\t\t\t{ options.footer && (\n\t\t\t\t<PanelBody style={ styles.linkSettingsPanel }>\n\t\t\t\t\t<FooterMessageControl\n\t\t\t\t\t\tlabel={ options.footer.label }\n\t\t\t\t\t\tseparatorType={ options.footer.separatorType }\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t) }\n\t\t\t{ actions && <PanelActions actions={ actions } /> }\n\t\t</>\n\t);\n}\n\nexport default compose( [\n\twithSelect( ( select ) => {\n\t\tconst { isEditorSidebarOpened } = select( 'core/edit-post' );\n\t\treturn {\n\t\t\teditorSidebarOpened: isEditorSidebarOpened(),\n\t\t};\n\t} ),\n] )( LinkSettings );\n"]}
@@ -38,6 +38,7 @@ function LinkSettingsNavigation(props) {
38
38
  isVisible: props.isVisible,
39
39
  onClose: props.onClose,
40
40
  onDismiss: props.onDismiss,
41
+ testID: props.testID,
41
42
  hideHeader: true,
42
43
  hasNavigation: true
43
44
  }, (0, _element.createElement)(_bottomSheet.default.NavigationContainer, {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/mobile/link-settings/link-settings-navigation.native.js"],"names":["linkSettingsScreens","settings","linkPicker","LinkSettingsNavigation","props","withBottomSheet","isVisible","onClose","onDismiss"],"mappings":";;;;;;;;;AAGA;;;;AAIA;;AACA;;AACA;;AATA;AACA;AACA;;AAEA;AACA;AACA;AAKA,MAAMA,mBAAmB,GAAG;AAC3BC,EAAAA,QAAQ,EAAE,oBADiB;AAE3BC,EAAAA,UAAU,EAAE;AAFe,CAA5B;;AAKA,SAASC,sBAAT,CAAiCC,KAAjC,EAAyC;AACxC,MAAK,CAAEA,KAAK,CAACC,eAAb,EAA+B;AAC9B,WAAO,4BAAC,2BAAD,EAAyBD,KAAzB,CAAP;AACA;;AACD,SACC,4BAAC,oBAAD;AACC,IAAA,SAAS,EAAGA,KAAK,CAACE,SADnB;AAEC,IAAA,OAAO,EAAGF,KAAK,CAACG,OAFjB;AAGC,IAAA,SAAS,EAAGH,KAAK,CAACI,SAHnB;AAIC,IAAA,UAAU,MAJX;AAKC,IAAA,aAAa;AALd,KAOC,4BAAC,oBAAD,CAAa,mBAAb;AAAiC,IAAA,OAAO,MAAxC;AAAyC,IAAA,IAAI;AAA7C,KACC,4BAAC,oBAAD,CAAa,gBAAb;AACC,IAAA,IAAI,EAAGR,mBAAmB,CAACC;AAD5B,KAGC,4BAAC,2BAAD,6BAAyBG,KAAzB;AAAiC,IAAA,eAAe;AAAhD,KAHD,CADD,EAMC,4BAAC,oBAAD,CAAa,gBAAb;AACC,IAAA,IAAI,EAAGJ,mBAAmB,CAACE,UAD5B;AAEC,IAAA,YAAY,MAFb;AAGC,IAAA,UAAU;AAHX,KAKC,4BAAC,yBAAD;AACC,IAAA,gBAAgB,EAAGF,mBAAmB,CAACC;AADxC,IALD,CAND,CAPD,CADD;AA0BA;;eAEc,mBAAME,sBAAN,C","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { memo } from '@wordpress/element';\n/**\n * Internal dependencies\n */\nimport BottomSheet from '../bottom-sheet';\nimport LinkSettingsScreen from './link-settings-screen';\nimport LinkPickerScreen from '../link-picker/link-picker-screen';\n\nconst linkSettingsScreens = {\n\tsettings: 'LinkSettingsScreen',\n\tlinkPicker: 'linkPicker',\n};\n\nfunction LinkSettingsNavigation( props ) {\n\tif ( ! props.withBottomSheet ) {\n\t\treturn <LinkSettingsScreen { ...props } />;\n\t}\n\treturn (\n\t\t<BottomSheet\n\t\t\tisVisible={ props.isVisible }\n\t\t\tonClose={ props.onClose }\n\t\t\tonDismiss={ props.onDismiss }\n\t\t\thideHeader\n\t\t\thasNavigation\n\t\t>\n\t\t\t<BottomSheet.NavigationContainer animate main>\n\t\t\t\t<BottomSheet.NavigationScreen\n\t\t\t\t\tname={ linkSettingsScreens.settings }\n\t\t\t\t>\n\t\t\t\t\t<LinkSettingsScreen { ...props } withBottomSheet />\n\t\t\t\t</BottomSheet.NavigationScreen>\n\t\t\t\t<BottomSheet.NavigationScreen\n\t\t\t\t\tname={ linkSettingsScreens.linkPicker }\n\t\t\t\t\tisScrollable\n\t\t\t\t\tfullScreen\n\t\t\t\t>\n\t\t\t\t\t<LinkPickerScreen\n\t\t\t\t\t\treturnScreenName={ linkSettingsScreens.settings }\n\t\t\t\t\t/>\n\t\t\t\t</BottomSheet.NavigationScreen>\n\t\t\t</BottomSheet.NavigationContainer>\n\t\t</BottomSheet>\n\t);\n}\n\nexport default memo( LinkSettingsNavigation );\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/mobile/link-settings/link-settings-navigation.native.js"],"names":["linkSettingsScreens","settings","linkPicker","LinkSettingsNavigation","props","withBottomSheet","isVisible","onClose","onDismiss","testID"],"mappings":";;;;;;;;;AAGA;;;;AAIA;;AACA;;AACA;;AATA;AACA;AACA;;AAEA;AACA;AACA;AAKA,MAAMA,mBAAmB,GAAG;AAC3BC,EAAAA,QAAQ,EAAE,oBADiB;AAE3BC,EAAAA,UAAU,EAAE;AAFe,CAA5B;;AAKA,SAASC,sBAAT,CAAiCC,KAAjC,EAAyC;AACxC,MAAK,CAAEA,KAAK,CAACC,eAAb,EAA+B;AAC9B,WAAO,4BAAC,2BAAD,EAAyBD,KAAzB,CAAP;AACA;;AACD,SACC,4BAAC,oBAAD;AACC,IAAA,SAAS,EAAGA,KAAK,CAACE,SADnB;AAEC,IAAA,OAAO,EAAGF,KAAK,CAACG,OAFjB;AAGC,IAAA,SAAS,EAAGH,KAAK,CAACI,SAHnB;AAIC,IAAA,MAAM,EAAGJ,KAAK,CAACK,MAJhB;AAKC,IAAA,UAAU,MALX;AAMC,IAAA,aAAa;AANd,KAQC,4BAAC,oBAAD,CAAa,mBAAb;AAAiC,IAAA,OAAO,MAAxC;AAAyC,IAAA,IAAI;AAA7C,KACC,4BAAC,oBAAD,CAAa,gBAAb;AACC,IAAA,IAAI,EAAGT,mBAAmB,CAACC;AAD5B,KAGC,4BAAC,2BAAD,6BAAyBG,KAAzB;AAAiC,IAAA,eAAe;AAAhD,KAHD,CADD,EAMC,4BAAC,oBAAD,CAAa,gBAAb;AACC,IAAA,IAAI,EAAGJ,mBAAmB,CAACE,UAD5B;AAEC,IAAA,YAAY,MAFb;AAGC,IAAA,UAAU;AAHX,KAKC,4BAAC,yBAAD;AACC,IAAA,gBAAgB,EAAGF,mBAAmB,CAACC;AADxC,IALD,CAND,CARD,CADD;AA2BA;;eAEc,mBAAME,sBAAN,C","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { memo } from '@wordpress/element';\n/**\n * Internal dependencies\n */\nimport BottomSheet from '../bottom-sheet';\nimport LinkSettingsScreen from './link-settings-screen';\nimport LinkPickerScreen from '../link-picker/link-picker-screen';\n\nconst linkSettingsScreens = {\n\tsettings: 'LinkSettingsScreen',\n\tlinkPicker: 'linkPicker',\n};\n\nfunction LinkSettingsNavigation( props ) {\n\tif ( ! props.withBottomSheet ) {\n\t\treturn <LinkSettingsScreen { ...props } />;\n\t}\n\treturn (\n\t\t<BottomSheet\n\t\t\tisVisible={ props.isVisible }\n\t\t\tonClose={ props.onClose }\n\t\t\tonDismiss={ props.onDismiss }\n\t\t\ttestID={ props.testID }\n\t\t\thideHeader\n\t\t\thasNavigation\n\t\t>\n\t\t\t<BottomSheet.NavigationContainer animate main>\n\t\t\t\t<BottomSheet.NavigationScreen\n\t\t\t\t\tname={ linkSettingsScreens.settings }\n\t\t\t\t>\n\t\t\t\t\t<LinkSettingsScreen { ...props } withBottomSheet />\n\t\t\t\t</BottomSheet.NavigationScreen>\n\t\t\t\t<BottomSheet.NavigationScreen\n\t\t\t\t\tname={ linkSettingsScreens.linkPicker }\n\t\t\t\t\tisScrollable\n\t\t\t\t\tfullScreen\n\t\t\t\t>\n\t\t\t\t\t<LinkPickerScreen\n\t\t\t\t\t\treturnScreenName={ linkSettingsScreens.settings }\n\t\t\t\t\t/>\n\t\t\t\t</BottomSheet.NavigationScreen>\n\t\t\t</BottomSheet.NavigationContainer>\n\t\t</BottomSheet>\n\t);\n}\n\nexport default memo( LinkSettingsNavigation );\n"]}
@@ -37,16 +37,22 @@ const LinkSettingsScreen = props => {
37
37
  } = route.params || {};
38
38
 
39
39
  const onLinkCellPressed = () => {
40
- navigation.navigate('linkPicker', {
41
- inputValue
42
- });
40
+ if (props.onLinkCellPressed) {
41
+ props.onLinkCellPressed({
42
+ navigation
43
+ });
44
+ } else {
45
+ navigation.navigate('linkPicker', {
46
+ inputValue
47
+ });
48
+ }
43
49
  };
44
50
 
45
51
  return (0, _element.useMemo)(() => {
46
- return (0, _element.createElement)(_.default, (0, _extends2.default)({
52
+ return (0, _element.createElement)(_.default, (0, _extends2.default)({}, props, {
47
53
  onLinkCellPressed: props.hasPicker ? onLinkCellPressed : undefined,
48
54
  urlValue: inputValue
49
- }, props));
55
+ }));
50
56
  }, [props, inputValue, navigation, route]);
51
57
  };
52
58
 
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/mobile/link-settings/link-settings-screen.native.js"],"names":["LinkSettingsScreen","props","navigation","route","url","inputValue","params","onLinkCellPressed","navigate","hasPicker","undefined"],"mappings":";;;;;;;;;AAQA;;;;AALA;;AAUA;;AAbA;AACA;AACA;;AAGA;AACA;AACA;;AAGA;AACA;AACA;AAGA,MAAMA,kBAAkB,GAAKC,KAAF,IAAa;AACvC,QAAMC,UAAU,GAAG,4BAAnB;AACA,QAAMC,KAAK,GAAG,uBAAd;AACA,QAAM;AAAEC,IAAAA,GAAG,GAAG;AAAR,MAAeH,KAArB;AACA,QAAM;AAAEI,IAAAA,UAAU,GAAGD;AAAf,MAAuBD,KAAK,CAACG,MAAN,IAAgB,EAA7C;;AAEA,QAAMC,iBAAiB,GAAG,MAAM;AAC/BL,IAAAA,UAAU,CAACM,QAAX,CAAqB,YAArB,EAAmC;AAAEH,MAAAA;AAAF,KAAnC;AACA,GAFD;;AAIA,SAAO,sBAAS,MAAM;AACrB,WACC,4BAAC,SAAD;AACC,MAAA,iBAAiB,EAChBJ,KAAK,CAACQ,SAAN,GAAkBF,iBAAlB,GAAsCG,SAFxC;AAIC,MAAA,QAAQ,EAAGL;AAJZ,OAKMJ,KALN,EADD;AASA,GAVM,EAUJ,CAAEA,KAAF,EAASI,UAAT,EAAqBH,UAArB,EAAiCC,KAAjC,CAVI,CAAP;AAWA,CArBD;;eAuBeH,kB","sourcesContent":["/**\n * External dependencies\n */\nimport { useNavigation, useRoute } from '@react-navigation/native';\n\n/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport LinkSettings from './';\n\nconst LinkSettingsScreen = ( props ) => {\n\tconst navigation = useNavigation();\n\tconst route = useRoute();\n\tconst { url = '' } = props;\n\tconst { inputValue = url } = route.params || {};\n\n\tconst onLinkCellPressed = () => {\n\t\tnavigation.navigate( 'linkPicker', { inputValue } );\n\t};\n\n\treturn useMemo( () => {\n\t\treturn (\n\t\t\t<LinkSettings\n\t\t\t\tonLinkCellPressed={\n\t\t\t\t\tprops.hasPicker ? onLinkCellPressed : undefined\n\t\t\t\t}\n\t\t\t\turlValue={ inputValue }\n\t\t\t\t{ ...props }\n\t\t\t/>\n\t\t);\n\t}, [ props, inputValue, navigation, route ] );\n};\n\nexport default LinkSettingsScreen;\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/mobile/link-settings/link-settings-screen.native.js"],"names":["LinkSettingsScreen","props","navigation","route","url","inputValue","params","onLinkCellPressed","navigate","hasPicker","undefined"],"mappings":";;;;;;;;;AAQA;;;;AALA;;AAUA;;AAbA;AACA;AACA;;AAGA;AACA;AACA;;AAGA;AACA;AACA;AAGA,MAAMA,kBAAkB,GAAKC,KAAF,IAAa;AACvC,QAAMC,UAAU,GAAG,4BAAnB;AACA,QAAMC,KAAK,GAAG,uBAAd;AACA,QAAM;AAAEC,IAAAA,GAAG,GAAG;AAAR,MAAeH,KAArB;AACA,QAAM;AAAEI,IAAAA,UAAU,GAAGD;AAAf,MAAuBD,KAAK,CAACG,MAAN,IAAgB,EAA7C;;AAEA,QAAMC,iBAAiB,GAAG,MAAM;AAC/B,QAAKN,KAAK,CAACM,iBAAX,EAA+B;AAC9BN,MAAAA,KAAK,CAACM,iBAAN,CAAyB;AAAEL,QAAAA;AAAF,OAAzB;AACA,KAFD,MAEO;AACNA,MAAAA,UAAU,CAACM,QAAX,CAAqB,YAArB,EAAmC;AAAEH,QAAAA;AAAF,OAAnC;AACA;AACD,GAND;;AAQA,SAAO,sBAAS,MAAM;AACrB,WACC,4BAAC,SAAD,6BACMJ,KADN;AAEC,MAAA,iBAAiB,EAChBA,KAAK,CAACQ,SAAN,GAAkBF,iBAAlB,GAAsCG,SAHxC;AAKC,MAAA,QAAQ,EAAGL;AALZ,OADD;AASA,GAVM,EAUJ,CAAEJ,KAAF,EAASI,UAAT,EAAqBH,UAArB,EAAiCC,KAAjC,CAVI,CAAP;AAWA,CAzBD;;eA2BeH,kB","sourcesContent":["/**\n * External dependencies\n */\nimport { useNavigation, useRoute } from '@react-navigation/native';\n\n/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport LinkSettings from './';\n\nconst LinkSettingsScreen = ( props ) => {\n\tconst navigation = useNavigation();\n\tconst route = useRoute();\n\tconst { url = '' } = props;\n\tconst { inputValue = url } = route.params || {};\n\n\tconst onLinkCellPressed = () => {\n\t\tif ( props.onLinkCellPressed ) {\n\t\t\tprops.onLinkCellPressed( { navigation } );\n\t\t} else {\n\t\t\tnavigation.navigate( 'linkPicker', { inputValue } );\n\t\t}\n\t};\n\n\treturn useMemo( () => {\n\t\treturn (\n\t\t\t<LinkSettings\n\t\t\t\t{ ...props }\n\t\t\t\tonLinkCellPressed={\n\t\t\t\t\tprops.hasPicker ? onLinkCellPressed : undefined\n\t\t\t\t}\n\t\t\t\turlValue={ inputValue }\n\t\t\t/>\n\t\t);\n\t}, [ props, inputValue, navigation, route ] );\n};\n\nexport default LinkSettingsScreen;\n"]}
@@ -90,7 +90,8 @@ class Picker extends _element.Component {
90
90
  render() {
91
91
  const {
92
92
  hideCancelButton,
93
- title
93
+ title,
94
+ testID
94
95
  } = this.props;
95
96
  const {
96
97
  isVisible
@@ -101,7 +102,8 @@ class Picker extends _element.Component {
101
102
  style: {
102
103
  paddingBottom: 20
103
104
  },
104
- hideHeader: true
105
+ hideHeader: true,
106
+ testID: testID
105
107
  }, (0, _element.createElement)(_components.PanelBody, {
106
108
  title: title,
107
109
  style: _styles.default.panelBody
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/mobile/picker/index.android.js"],"names":["Separator","separatorStyle","styles","separator","separatorDark","Picker","Component","constructor","arguments","onClose","bind","onCellPress","state","isVisible","presentPicker","setState","value","onChange","props","getOptions","options","leftAlign","map","option","label","length","separated","icon","disabled","render","hideCancelButton","title","paddingBottom","panelBody"],"mappings":";;;;;;;;;AASA;;AANA;;AAKA;;AAEA;;AACA;;AAKA;;AACA;;AAjBA;AACA;AACA;;AAGA;AACA;AACA;;AAMA;AACA;AACA;AAIA,SAASA,SAAT,GAAqB;AACpB,QAAMC,cAAc,GAAG,2CACtBC,gBAAOC,SADe,EAEtBD,gBAAOE,aAFe,CAAvB;AAKA,SAAO,4BAAC,iBAAD;AAAM,IAAA,KAAK,EAAGH;AAAd,IAAP;AACA;;AAEc,MAAMI,MAAN,SAAqBC,kBAArB,CAA+B;AAC7CC,EAAAA,WAAW,GAAG;AACb,UAAO,GAAGC,SAAV;AACA,SAAKC,OAAL,GAAe,KAAKA,OAAL,CAAaC,IAAb,CAAmB,IAAnB,CAAf;AACA,SAAKC,WAAL,GAAmB,KAAKA,WAAL,CAAiBD,IAAjB,CAAuB,IAAvB,CAAnB;AAEA,SAAKE,KAAL,GAAa;AACZC,MAAAA,SAAS,EAAE;AADC,KAAb;AAGA;;AAEDC,EAAAA,aAAa,GAAG;AACf,SAAKC,QAAL,CAAe;AAAEF,MAAAA,SAAS,EAAE;AAAb,KAAf;AACA;;AAEDJ,EAAAA,OAAO,GAAG;AACT,SAAKM,QAAL,CAAe;AAAEF,MAAAA,SAAS,EAAE;AAAb,KAAf;AACA;;AAEDF,EAAAA,WAAW,CAAEK,KAAF,EAAU;AACpB,UAAM;AAAEC,MAAAA;AAAF,QAAe,KAAKC,KAA1B;AACAD,IAAAA,QAAQ,CAAED,KAAF,CAAR;AACA,SAAKP,OAAL;AACA;;AAEDU,EAAAA,UAAU,GAAG;AACZ,UAAM;AAAEC,MAAAA,OAAF;AAAWC,MAAAA;AAAX,QAAyB,KAAKH,KAApC;AAEA,WAAOE,OAAO,CAACE,GAAR,CAAeC,MAAF,IACnB,4BAAC,iBAAD;AAAU,MAAA,GAAG,EAAI,GAAGA,MAAM,CAACC,KAAO,IAAID,MAAM,CAACP,KAAO;AAApD,OACGI,OAAO,CAACK,MAAR,GAAiB,CAAjB,IAAsBF,MAAM,CAACG,SAA7B,IAA0C,4BAAC,SAAD,OAD7C,EAEC,4BAAC,oBAAD,CAAa,IAAb;AACC,MAAA,IAAI,EAAGH,MAAM,CAACI,IADf;AAEC,MAAA,SAAS,EAAGN,SAFb;AAGC,MAAA,KAAK,EAAGE,MAAM,CAACC,KAHhB;AAIC,MAAA,aAAa,EAAG,MAJjB;AAKC,MAAA,OAAO,EAAG,MAAM,KAAKb,WAAL,CAAkBY,MAAM,CAACP,KAAzB,CALjB;AAMC,MAAA,QAAQ,EAAGO,MAAM,CAACK,QANnB;AAOC,MAAA,KAAK,EAAGL,MAAM,CAACK,QAAP,IAAmB1B,gBAAO0B;AAPnC,MAFD,CADM,CAAP;AAcA;;AAEDC,EAAAA,MAAM,GAAG;AACR,UAAM;AAAEC,MAAAA,gBAAF;AAAoBC,MAAAA;AAApB,QAA8B,KAAKb,KAAzC;AACA,UAAM;AAAEL,MAAAA;AAAF,QAAgB,KAAKD,KAA3B;AAEA,WACC,4BAAC,oBAAD;AACC,MAAA,SAAS,EAAGC,SADb;AAEC,MAAA,OAAO,EAAG,KAAKJ,OAFhB;AAGC,MAAA,KAAK,EAAG;AAAEuB,QAAAA,aAAa,EAAE;AAAjB,OAHT;AAIC,MAAA,UAAU;AAJX,OAMC,4BAAC,qBAAD;AAAW,MAAA,KAAK,EAAGD,KAAnB;AAA2B,MAAA,KAAK,EAAG7B,gBAAO+B;AAA1C,OACG,KAAKd,UAAL,EADH,EAEG,CAAEW,gBAAF,IACD,4BAAC,uBAAD;AACC,MAAA,KAAK,EAAG,cAAI,QAAJ,CADT;AAEC,MAAA,OAAO,EAAG,KAAKrB,OAFhB;AAGC,MAAA,aAAa,EAAG;AAHjB,MAHF,CAND,CADD;AAmBA;;AAnE4C","sourcesContent":["/**\n * External dependencies\n */\nimport { View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Component, Fragment } from '@wordpress/element';\nimport { usePreferredColorSchemeStyle } from '@wordpress/compose';\nimport { PanelBody, TextControl } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport BottomSheet from '../bottom-sheet';\nimport styles from './styles.scss';\n\nfunction Separator() {\n\tconst separatorStyle = usePreferredColorSchemeStyle(\n\t\tstyles.separator,\n\t\tstyles.separatorDark\n\t);\n\n\treturn <View style={ separatorStyle } />;\n}\n\nexport default class Picker extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\t\tthis.onClose = this.onClose.bind( this );\n\t\tthis.onCellPress = this.onCellPress.bind( this );\n\n\t\tthis.state = {\n\t\t\tisVisible: false,\n\t\t};\n\t}\n\n\tpresentPicker() {\n\t\tthis.setState( { isVisible: true } );\n\t}\n\n\tonClose() {\n\t\tthis.setState( { isVisible: false } );\n\t}\n\n\tonCellPress( value ) {\n\t\tconst { onChange } = this.props;\n\t\tonChange( value );\n\t\tthis.onClose();\n\t}\n\n\tgetOptions() {\n\t\tconst { options, leftAlign } = this.props;\n\n\t\treturn options.map( ( option ) => (\n\t\t\t<Fragment key={ `${ option.label }-${ option.value }` }>\n\t\t\t\t{ options.length > 1 && option.separated && <Separator /> }\n\t\t\t\t<BottomSheet.Cell\n\t\t\t\t\ticon={ option.icon }\n\t\t\t\t\tleftAlign={ leftAlign }\n\t\t\t\t\tlabel={ option.label }\n\t\t\t\t\tseparatorType={ 'none' }\n\t\t\t\t\tonPress={ () => this.onCellPress( option.value ) }\n\t\t\t\t\tdisabled={ option.disabled }\n\t\t\t\t\tstyle={ option.disabled && styles.disabled }\n\t\t\t\t/>\n\t\t\t</Fragment>\n\t\t) );\n\t}\n\n\trender() {\n\t\tconst { hideCancelButton, title } = this.props;\n\t\tconst { isVisible } = this.state;\n\n\t\treturn (\n\t\t\t<BottomSheet\n\t\t\t\tisVisible={ isVisible }\n\t\t\t\tonClose={ this.onClose }\n\t\t\t\tstyle={ { paddingBottom: 20 } }\n\t\t\t\thideHeader\n\t\t\t>\n\t\t\t\t<PanelBody title={ title } style={ styles.panelBody }>\n\t\t\t\t\t{ this.getOptions() }\n\t\t\t\t\t{ ! hideCancelButton && (\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\tlabel={ __( 'Cancel' ) }\n\t\t\t\t\t\t\tonPress={ this.onClose }\n\t\t\t\t\t\t\tseparatorType={ 'none' }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</PanelBody>\n\t\t\t</BottomSheet>\n\t\t);\n\t}\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/mobile/picker/index.android.js"],"names":["Separator","separatorStyle","styles","separator","separatorDark","Picker","Component","constructor","arguments","onClose","bind","onCellPress","state","isVisible","presentPicker","setState","value","onChange","props","getOptions","options","leftAlign","map","option","label","length","separated","icon","disabled","render","hideCancelButton","title","testID","paddingBottom","panelBody"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Component, Fragment } from '@wordpress/element';\nimport { usePreferredColorSchemeStyle } from '@wordpress/compose';\nimport { PanelBody, TextControl } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport BottomSheet from '../bottom-sheet';\nimport styles from './styles.scss';\n\nfunction Separator() {\n\tconst separatorStyle = usePreferredColorSchemeStyle(\n\t\tstyles.separator,\n\t\tstyles.separatorDark\n\t);\n\n\treturn <View style={ separatorStyle } />;\n}\n\nexport default class Picker extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\t\tthis.onClose = this.onClose.bind( this );\n\t\tthis.onCellPress = this.onCellPress.bind( this );\n\n\t\tthis.state = {\n\t\t\tisVisible: false,\n\t\t};\n\t}\n\n\tpresentPicker() {\n\t\tthis.setState( { isVisible: true } );\n\t}\n\n\tonClose() {\n\t\tthis.setState( { isVisible: false } );\n\t}\n\n\tonCellPress( value ) {\n\t\tconst { onChange } = this.props;\n\t\tonChange( value );\n\t\tthis.onClose();\n\t}\n\n\tgetOptions() {\n\t\tconst { options, leftAlign } = this.props;\n\n\t\treturn options.map( ( option ) => (\n\t\t\t<Fragment key={ `${ option.label }-${ option.value }` }>\n\t\t\t\t{ options.length > 1 && option.separated && <Separator /> }\n\t\t\t\t<BottomSheet.Cell\n\t\t\t\t\ticon={ option.icon }\n\t\t\t\t\tleftAlign={ leftAlign }\n\t\t\t\t\tlabel={ option.label }\n\t\t\t\t\tseparatorType={ 'none' }\n\t\t\t\t\tonPress={ () => this.onCellPress( option.value ) }\n\t\t\t\t\tdisabled={ option.disabled }\n\t\t\t\t\tstyle={ option.disabled && styles.disabled }\n\t\t\t\t/>\n\t\t\t</Fragment>\n\t\t) );\n\t}\n\n\trender() {\n\t\tconst { hideCancelButton, title, testID } = this.props;\n\t\tconst { isVisible } = this.state;\n\n\t\treturn (\n\t\t\t<BottomSheet\n\t\t\t\tisVisible={ isVisible }\n\t\t\t\tonClose={ this.onClose }\n\t\t\t\tstyle={ { paddingBottom: 20 } }\n\t\t\t\thideHeader\n\t\t\t\ttestID={ testID }\n\t\t\t>\n\t\t\t\t<PanelBody title={ title } style={ styles.panelBody }>\n\t\t\t\t\t{ this.getOptions() }\n\t\t\t\t\t{ ! hideCancelButton && (\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\tlabel={ __( 'Cancel' ) }\n\t\t\t\t\t\t\tonPress={ this.onClose }\n\t\t\t\t\t\t\tseparatorType={ 'none' }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</PanelBody>\n\t\t\t</BottomSheet>\n\t\t);\n\t}\n}\n"]}
@@ -29,6 +29,8 @@ var ariaHelper = _interopRequireWildcard(require("./aria-helper"));
29
29
 
30
30
  var _button = _interopRequireDefault(require("../button"));
31
31
 
32
+ var _styleProvider = _interopRequireDefault(require("../style-provider"));
33
+
32
34
  /**
33
35
  * External dependencies
34
36
  */
@@ -67,7 +69,8 @@ function Modal({
67
69
  overlayClassName,
68
70
  className,
69
71
  contentLabel,
70
- onKeyDown
72
+ onKeyDown,
73
+ isFullScreen = false
71
74
  }) {
72
75
  const ref = (0, _element.useRef)();
73
76
  const instanceId = (0, _compose.useInstanceId)(Modal);
@@ -116,8 +119,12 @@ function Modal({
116
119
  ref: ref,
117
120
  className: (0, _classnames.default)('components-modal__screen-overlay', overlayClassName),
118
121
  onKeyDown: handleEscapeKeyDown
122
+ }, (0, _element.createElement)(_styleProvider.default, {
123
+ document: document
119
124
  }, (0, _element.createElement)("div", (0, _extends2.default)({
120
- className: (0, _classnames.default)('components-modal__frame', className),
125
+ className: (0, _classnames.default)('components-modal__frame', className, {
126
+ 'is-full-screen': isFullScreen
127
+ }),
121
128
  style: style,
122
129
  ref: (0, _compose.useMergeRefs)([constrainedTabbingRef, focusReturnRef, focusOnMountRef]),
123
130
  role: role,
@@ -144,6 +151,6 @@ function Modal({
144
151
  onClick: onRequestClose,
145
152
  icon: _icons.closeSmall,
146
153
  label: closeButtonLabel || (0, _i18n.__)('Close dialog')
147
- })), children))), document.body);
154
+ })), children)))), document.body);
148
155
  }
149
156
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/modal/index.js"],"names":["openModalCount","Modal","bodyOpenClassName","role","title","focusOnMount","shouldCloseOnEsc","shouldCloseOnClickOutside","isDismissable","isDismissible","aria","labelledby","describedby","onRequestClose","icon","closeButtonLabel","children","style","overlayClassName","className","contentLabel","onKeyDown","ref","instanceId","headingId","focusOnMountRef","constrainedTabbingRef","focusReturnRef","focusOutsideProps","ariaHelper","hideApp","current","document","body","classList","add","remove","showApp","since","alternative","handleEscapeKeyDown","event","keyCode","ESCAPE","defaultPrevented","preventDefault","closeSmall"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { createPortal, useEffect, useRef } from '@wordpress/element';\nimport {\n\tuseInstanceId,\n\tuseFocusReturn,\n\tuseFocusOnMount,\n\t__experimentalUseFocusOutside as useFocusOutside,\n\tuseConstrainedTabbing,\n\tuseMergeRefs,\n} from '@wordpress/compose';\nimport deprecated from '@wordpress/deprecated';\nimport { ESCAPE } from '@wordpress/keycodes';\nimport { __ } from '@wordpress/i18n';\nimport { closeSmall } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport * as ariaHelper from './aria-helper';\nimport Button from '../button';\n\n// Used to count the number of open modals.\nlet openModalCount = 0;\n\nexport default function Modal( {\n\tbodyOpenClassName = 'modal-open',\n\trole = 'dialog',\n\ttitle = null,\n\tfocusOnMount = true,\n\tshouldCloseOnEsc = true,\n\tshouldCloseOnClickOutside = true,\n\tisDismissable, // Deprecated\n\tisDismissible = isDismissable || true,\n\t/* accessibility */\n\taria = {\n\t\tlabelledby: null,\n\t\tdescribedby: null,\n\t},\n\tonRequestClose,\n\ticon,\n\tcloseButtonLabel,\n\tchildren,\n\tstyle,\n\toverlayClassName,\n\tclassName,\n\tcontentLabel,\n\tonKeyDown,\n} ) {\n\tconst ref = useRef();\n\tconst instanceId = useInstanceId( Modal );\n\tconst headingId = title\n\t\t? `components-modal-header-${ instanceId }`\n\t\t: aria.labelledby;\n\tconst focusOnMountRef = useFocusOnMount( focusOnMount );\n\tconst constrainedTabbingRef = useConstrainedTabbing();\n\tconst focusReturnRef = useFocusReturn();\n\tconst focusOutsideProps = useFocusOutside( onRequestClose );\n\n\tuseEffect( () => {\n\t\topenModalCount++;\n\n\t\tif ( openModalCount === 1 ) {\n\t\t\tariaHelper.hideApp( ref.current );\n\t\t\tdocument.body.classList.add( bodyOpenClassName );\n\t\t}\n\n\t\treturn () => {\n\t\t\topenModalCount--;\n\n\t\t\tif ( openModalCount === 0 ) {\n\t\t\t\tdocument.body.classList.remove( bodyOpenClassName );\n\t\t\t\tariaHelper.showApp();\n\t\t\t}\n\t\t};\n\t}, [] );\n\n\tif ( isDismissable ) {\n\t\tdeprecated( 'isDismissable prop of the Modal component', {\n\t\t\tsince: '5.4',\n\t\t\talternative: 'isDismissible prop (renamed) of the Modal component',\n\t\t} );\n\t}\n\n\tfunction handleEscapeKeyDown( event ) {\n\t\tif (\n\t\t\tshouldCloseOnEsc &&\n\t\t\tevent.keyCode === ESCAPE &&\n\t\t\t! event.defaultPrevented\n\t\t) {\n\t\t\tevent.preventDefault();\n\t\t\tif ( onRequestClose ) {\n\t\t\t\tonRequestClose( event );\n\t\t\t}\n\t\t}\n\t}\n\n\treturn createPortal(\n\t\t// eslint-disable-next-line jsx-a11y/no-static-element-interactions\n\t\t<div\n\t\t\tref={ ref }\n\t\t\tclassName={ classnames(\n\t\t\t\t'components-modal__screen-overlay',\n\t\t\t\toverlayClassName\n\t\t\t) }\n\t\t\tonKeyDown={ handleEscapeKeyDown }\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={ classnames( 'components-modal__frame', className ) }\n\t\t\t\tstyle={ style }\n\t\t\t\tref={ useMergeRefs( [\n\t\t\t\t\tconstrainedTabbingRef,\n\t\t\t\t\tfocusReturnRef,\n\t\t\t\t\tfocusOnMountRef,\n\t\t\t\t] ) }\n\t\t\t\trole={ role }\n\t\t\t\taria-label={ contentLabel }\n\t\t\t\taria-labelledby={ contentLabel ? null : headingId }\n\t\t\t\taria-describedby={ aria.describedby }\n\t\t\t\ttabIndex=\"-1\"\n\t\t\t\t{ ...( shouldCloseOnClickOutside ? focusOutsideProps : {} ) }\n\t\t\t\tonKeyDown={ onKeyDown }\n\t\t\t>\n\t\t\t\t<div className={ 'components-modal__content' } role=\"document\">\n\t\t\t\t\t<div className=\"components-modal__header\">\n\t\t\t\t\t\t<div className=\"components-modal__header-heading-container\">\n\t\t\t\t\t\t\t{ icon && (\n\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\tclassName=\"components-modal__icon-container\"\n\t\t\t\t\t\t\t\t\taria-hidden\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ icon }\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ title && (\n\t\t\t\t\t\t\t\t<h1\n\t\t\t\t\t\t\t\t\tid={ headingId }\n\t\t\t\t\t\t\t\t\tclassName=\"components-modal__header-heading\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ title }\n\t\t\t\t\t\t\t\t</h1>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{ isDismissible && (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tonClick={ onRequestClose }\n\t\t\t\t\t\t\t\ticon={ closeSmall }\n\t\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t\tcloseButtonLabel || __( 'Close dialog' )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</div>\n\t\t\t\t\t{ children }\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>,\n\t\tdocument.body\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/modal/index.js"],"names":["openModalCount","Modal","bodyOpenClassName","role","title","focusOnMount","shouldCloseOnEsc","shouldCloseOnClickOutside","isDismissable","isDismissible","aria","labelledby","describedby","onRequestClose","icon","closeButtonLabel","children","style","overlayClassName","className","contentLabel","onKeyDown","isFullScreen","ref","instanceId","headingId","focusOnMountRef","constrainedTabbingRef","focusReturnRef","focusOutsideProps","ariaHelper","hideApp","current","document","body","classList","add","remove","showApp","since","alternative","handleEscapeKeyDown","event","keyCode","ESCAPE","defaultPrevented","preventDefault","closeSmall"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { createPortal, useEffect, useRef } from '@wordpress/element';\nimport {\n\tuseInstanceId,\n\tuseFocusReturn,\n\tuseFocusOnMount,\n\t__experimentalUseFocusOutside as useFocusOutside,\n\tuseConstrainedTabbing,\n\tuseMergeRefs,\n} from '@wordpress/compose';\nimport deprecated from '@wordpress/deprecated';\nimport { ESCAPE } from '@wordpress/keycodes';\nimport { __ } from '@wordpress/i18n';\nimport { closeSmall } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport * as ariaHelper from './aria-helper';\nimport Button from '../button';\nimport StyleProvider from '../style-provider';\n\n// Used to count the number of open modals.\nlet openModalCount = 0;\n\nexport default function Modal( {\n\tbodyOpenClassName = 'modal-open',\n\trole = 'dialog',\n\ttitle = null,\n\tfocusOnMount = true,\n\tshouldCloseOnEsc = true,\n\tshouldCloseOnClickOutside = true,\n\tisDismissable, // Deprecated\n\tisDismissible = isDismissable || true,\n\t/* accessibility */\n\taria = {\n\t\tlabelledby: null,\n\t\tdescribedby: null,\n\t},\n\tonRequestClose,\n\ticon,\n\tcloseButtonLabel,\n\tchildren,\n\tstyle,\n\toverlayClassName,\n\tclassName,\n\tcontentLabel,\n\tonKeyDown,\n\tisFullScreen = false,\n} ) {\n\tconst ref = useRef();\n\tconst instanceId = useInstanceId( Modal );\n\tconst headingId = title\n\t\t? `components-modal-header-${ instanceId }`\n\t\t: aria.labelledby;\n\tconst focusOnMountRef = useFocusOnMount( focusOnMount );\n\tconst constrainedTabbingRef = useConstrainedTabbing();\n\tconst focusReturnRef = useFocusReturn();\n\tconst focusOutsideProps = useFocusOutside( onRequestClose );\n\n\tuseEffect( () => {\n\t\topenModalCount++;\n\n\t\tif ( openModalCount === 1 ) {\n\t\t\tariaHelper.hideApp( ref.current );\n\t\t\tdocument.body.classList.add( bodyOpenClassName );\n\t\t}\n\n\t\treturn () => {\n\t\t\topenModalCount--;\n\n\t\t\tif ( openModalCount === 0 ) {\n\t\t\t\tdocument.body.classList.remove( bodyOpenClassName );\n\t\t\t\tariaHelper.showApp();\n\t\t\t}\n\t\t};\n\t}, [] );\n\n\tif ( isDismissable ) {\n\t\tdeprecated( 'isDismissable prop of the Modal component', {\n\t\t\tsince: '5.4',\n\t\t\talternative: 'isDismissible prop (renamed) of the Modal component',\n\t\t} );\n\t}\n\n\tfunction handleEscapeKeyDown( event ) {\n\t\tif (\n\t\t\tshouldCloseOnEsc &&\n\t\t\tevent.keyCode === ESCAPE &&\n\t\t\t! event.defaultPrevented\n\t\t) {\n\t\t\tevent.preventDefault();\n\t\t\tif ( onRequestClose ) {\n\t\t\t\tonRequestClose( event );\n\t\t\t}\n\t\t}\n\t}\n\n\treturn createPortal(\n\t\t// eslint-disable-next-line jsx-a11y/no-static-element-interactions\n\t\t<div\n\t\t\tref={ ref }\n\t\t\tclassName={ classnames(\n\t\t\t\t'components-modal__screen-overlay',\n\t\t\t\toverlayClassName\n\t\t\t) }\n\t\t\tonKeyDown={ handleEscapeKeyDown }\n\t\t>\n\t\t\t<StyleProvider document={ document }>\n\t\t\t\t<div\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t'components-modal__frame',\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t'is-full-screen': isFullScreen,\n\t\t\t\t\t\t}\n\t\t\t\t\t) }\n\t\t\t\t\tstyle={ style }\n\t\t\t\t\tref={ useMergeRefs( [\n\t\t\t\t\t\tconstrainedTabbingRef,\n\t\t\t\t\t\tfocusReturnRef,\n\t\t\t\t\t\tfocusOnMountRef,\n\t\t\t\t\t] ) }\n\t\t\t\t\trole={ role }\n\t\t\t\t\taria-label={ contentLabel }\n\t\t\t\t\taria-labelledby={ contentLabel ? null : headingId }\n\t\t\t\t\taria-describedby={ aria.describedby }\n\t\t\t\t\ttabIndex=\"-1\"\n\t\t\t\t\t{ ...( shouldCloseOnClickOutside\n\t\t\t\t\t\t? focusOutsideProps\n\t\t\t\t\t\t: {} ) }\n\t\t\t\t\tonKeyDown={ onKeyDown }\n\t\t\t\t>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={ 'components-modal__content' }\n\t\t\t\t\t\trole=\"document\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<div className=\"components-modal__header\">\n\t\t\t\t\t\t\t<div className=\"components-modal__header-heading-container\">\n\t\t\t\t\t\t\t\t{ icon && (\n\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\tclassName=\"components-modal__icon-container\"\n\t\t\t\t\t\t\t\t\t\taria-hidden\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ icon }\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ title && (\n\t\t\t\t\t\t\t\t\t<h1\n\t\t\t\t\t\t\t\t\t\tid={ headingId }\n\t\t\t\t\t\t\t\t\t\tclassName=\"components-modal__header-heading\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ title }\n\t\t\t\t\t\t\t\t\t</h1>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t{ isDismissible && (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tonClick={ onRequestClose }\n\t\t\t\t\t\t\t\t\ticon={ closeSmall }\n\t\t\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t\t\tcloseButtonLabel || __( 'Close dialog' )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{ children }\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</StyleProvider>\n\t\t</div>,\n\t\tdocument.body\n\t);\n}\n"]}
@@ -61,10 +61,9 @@ function NavigationGroup({
61
61
  }, (0, _element.createElement)("li", {
62
62
  className: classes
63
63
  }, title && (0, _element.createElement)(_navigationStyles.GroupTitleUI, {
64
- as: "h3",
65
64
  className: "components-navigation__group-title",
66
65
  id: groupTitleId,
67
- variant: "caption"
66
+ level: 3
68
67
  }, title), (0, _element.createElement)("ul", {
69
68
  "aria-labelledby": groupTitleId,
70
69
  role: "group"
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/navigation/group/index.js"],"names":["NavigationGroup","children","className","title","groupId","navigationTree","items","context","group","_isVisible","groupTitleId","classes"],"mappings":";;;;;;;;;AASA;;AANA;;AACA;;AAUA;;AACA;;AACA;;AAhBA;AACA;AACA;;AAIA;AACA;AACA;;AAGA;AACA;AACA;AAKe,SAASA,eAAT,CAA0B;AAAEC,EAAAA,QAAF;AAAYC,EAAAA,SAAZ;AAAuBC,EAAAA;AAAvB,CAA1B,EAA2D;AACzE,QAAM,CAAEC,OAAF,IAAc,uBAAU,sBAAU,QAAV,CAAV,CAApB;AACA,QAAM;AACLC,IAAAA,cAAc,EAAE;AAAEC,MAAAA;AAAF;AADX,MAEF,qCAFJ;AAIA,QAAMC,OAAO,GAAG;AAAEC,IAAAA,KAAK,EAAEJ;AAAT,GAAhB,CANyE,CAQzE;;AACA,MAAK,CAAE,kBAAME,KAAN,EAAa;AAAEE,IAAAA,KAAK,EAAEJ,OAAT;AAAkBK,IAAAA,UAAU,EAAE;AAA9B,GAAb,CAAP,EAA6D;AAC5D,WACC,4BAAC,+BAAD,CAAwB,QAAxB;AAAiC,MAAA,KAAK,EAAGF;AAAzC,OACGN,QADH,CADD;AAKA;;AAED,QAAMS,YAAY,GAAI,sCAAsCN,OAAS,EAArE;AACA,QAAMO,OAAO,GAAG,yBAAY,8BAAZ,EAA4CT,SAA5C,CAAhB;AAEA,SACC,4BAAC,+BAAD,CAAwB,QAAxB;AAAiC,IAAA,KAAK,EAAGK;AAAzC,KACC;AAAI,IAAA,SAAS,EAAGI;AAAhB,KACGR,KAAK,IACN,4BAAC,8BAAD;AACC,IAAA,EAAE,EAAC,IADJ;AAEC,IAAA,SAAS,EAAC,oCAFX;AAGC,IAAA,EAAE,EAAGO,YAHN;AAIC,IAAA,OAAO,EAAC;AAJT,KAMGP,KANH,CAFF,EAWC;AAAI,uBAAkBO,YAAtB;AAAqC,IAAA,IAAI,EAAC;AAA1C,KACGT,QADH,CAXD,CADD,CADD;AAmBA","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { find, uniqueId } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { NavigationGroupContext } from './context';\nimport { GroupTitleUI } from '../styles/navigation-styles';\nimport { useNavigationContext } from '../context';\n\nexport default function NavigationGroup( { children, className, title } ) {\n\tconst [ groupId ] = useState( uniqueId( 'group-' ) );\n\tconst {\n\t\tnavigationTree: { items },\n\t} = useNavigationContext();\n\n\tconst context = { group: groupId };\n\n\t// Keep the children rendered to make sure invisible items are included in the navigation tree.\n\tif ( ! find( items, { group: groupId, _isVisible: true } ) ) {\n\t\treturn (\n\t\t\t<NavigationGroupContext.Provider value={ context }>\n\t\t\t\t{ children }\n\t\t\t</NavigationGroupContext.Provider>\n\t\t);\n\t}\n\n\tconst groupTitleId = `components-navigation__group-title-${ groupId }`;\n\tconst classes = classnames( 'components-navigation__group', className );\n\n\treturn (\n\t\t<NavigationGroupContext.Provider value={ context }>\n\t\t\t<li className={ classes }>\n\t\t\t\t{ title && (\n\t\t\t\t\t<GroupTitleUI\n\t\t\t\t\t\tas=\"h3\"\n\t\t\t\t\t\tclassName=\"components-navigation__group-title\"\n\t\t\t\t\t\tid={ groupTitleId }\n\t\t\t\t\t\tvariant=\"caption\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ title }\n\t\t\t\t\t</GroupTitleUI>\n\t\t\t\t) }\n\t\t\t\t<ul aria-labelledby={ groupTitleId } role=\"group\">\n\t\t\t\t\t{ children }\n\t\t\t\t</ul>\n\t\t\t</li>\n\t\t</NavigationGroupContext.Provider>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/navigation/group/index.js"],"names":["NavigationGroup","children","className","title","groupId","navigationTree","items","context","group","_isVisible","groupTitleId","classes"],"mappings":";;;;;;;;;AASA;;AANA;;AACA;;AAUA;;AACA;;AACA;;AAhBA;AACA;AACA;;AAIA;AACA;AACA;;AAGA;AACA;AACA;AAKe,SAASA,eAAT,CAA0B;AAAEC,EAAAA,QAAF;AAAYC,EAAAA,SAAZ;AAAuBC,EAAAA;AAAvB,CAA1B,EAA2D;AACzE,QAAM,CAAEC,OAAF,IAAc,uBAAU,sBAAU,QAAV,CAAV,CAApB;AACA,QAAM;AACLC,IAAAA,cAAc,EAAE;AAAEC,MAAAA;AAAF;AADX,MAEF,qCAFJ;AAIA,QAAMC,OAAO,GAAG;AAAEC,IAAAA,KAAK,EAAEJ;AAAT,GAAhB,CANyE,CAQzE;;AACA,MAAK,CAAE,kBAAME,KAAN,EAAa;AAAEE,IAAAA,KAAK,EAAEJ,OAAT;AAAkBK,IAAAA,UAAU,EAAE;AAA9B,GAAb,CAAP,EAA6D;AAC5D,WACC,4BAAC,+BAAD,CAAwB,QAAxB;AAAiC,MAAA,KAAK,EAAGF;AAAzC,OACGN,QADH,CADD;AAKA;;AAED,QAAMS,YAAY,GAAI,sCAAsCN,OAAS,EAArE;AACA,QAAMO,OAAO,GAAG,yBAAY,8BAAZ,EAA4CT,SAA5C,CAAhB;AAEA,SACC,4BAAC,+BAAD,CAAwB,QAAxB;AAAiC,IAAA,KAAK,EAAGK;AAAzC,KACC;AAAI,IAAA,SAAS,EAAGI;AAAhB,KACGR,KAAK,IACN,4BAAC,8BAAD;AACC,IAAA,SAAS,EAAC,oCADX;AAEC,IAAA,EAAE,EAAGO,YAFN;AAGC,IAAA,KAAK,EAAG;AAHT,KAKGP,KALH,CAFF,EAUC;AAAI,uBAAkBO,YAAtB;AAAqC,IAAA,IAAI,EAAC;AAA1C,KACGT,QADH,CAVD,CADD,CADD;AAkBA","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { find, uniqueId } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { NavigationGroupContext } from './context';\nimport { GroupTitleUI } from '../styles/navigation-styles';\nimport { useNavigationContext } from '../context';\n\nexport default function NavigationGroup( { children, className, title } ) {\n\tconst [ groupId ] = useState( uniqueId( 'group-' ) );\n\tconst {\n\t\tnavigationTree: { items },\n\t} = useNavigationContext();\n\n\tconst context = { group: groupId };\n\n\t// Keep the children rendered to make sure invisible items are included in the navigation tree.\n\tif ( ! find( items, { group: groupId, _isVisible: true } ) ) {\n\t\treturn (\n\t\t\t<NavigationGroupContext.Provider value={ context }>\n\t\t\t\t{ children }\n\t\t\t</NavigationGroupContext.Provider>\n\t\t);\n\t}\n\n\tconst groupTitleId = `components-navigation__group-title-${ groupId }`;\n\tconst classes = classnames( 'components-navigation__group', className );\n\n\treturn (\n\t\t<NavigationGroupContext.Provider value={ context }>\n\t\t\t<li className={ classes }>\n\t\t\t\t{ title && (\n\t\t\t\t\t<GroupTitleUI\n\t\t\t\t\t\tclassName=\"components-navigation__group-title\"\n\t\t\t\t\t\tid={ groupTitleId }\n\t\t\t\t\t\tlevel={ 3 }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ title }\n\t\t\t\t\t</GroupTitleUI>\n\t\t\t\t) }\n\t\t\t\t<ul aria-labelledby={ groupTitleId } role=\"group\">\n\t\t\t\t\t{ children }\n\t\t\t\t</ul>\n\t\t\t</li>\n\t\t</NavigationGroupContext.Provider>\n\t);\n}\n"]}
@@ -11,16 +11,10 @@ var _element = require("@wordpress/element");
11
11
 
12
12
  var _lodash = require("lodash");
13
13
 
14
- var _icons = require("@wordpress/icons");
15
-
16
14
  var _i18n = require("@wordpress/i18n");
17
15
 
18
16
  var _keycodes = require("@wordpress/keycodes");
19
17
 
20
- var _button = _interopRequireDefault(require("../../button"));
21
-
22
- var _visuallyHidden = require("../../visually-hidden");
23
-
24
18
  var _withSpokenMessages = _interopRequireDefault(require("../../higher-order/with-spoken-messages"));
25
19
 
26
20
  var _context = require("./context");
@@ -92,37 +86,24 @@ function MenuTitleSearch({
92
86
  }
93
87
  }
94
88
 
95
- const menuTitleId = `components-navigation__menu-title-${menu}`;
96
89
  const inputId = `components-navigation__menu-title-search-${menu}`;
90
+ const placeholder = (0, _i18n.sprintf)(
97
91
  /* translators: placeholder for menu search box. %s: menu title */
98
-
99
- const placeholder = (0, _i18n.sprintf)((0, _i18n.__)('Search in %s'), title);
100
- return (0, _element.createElement)(_navigationStyles.MenuTitleSearchUI, {
92
+ (0, _i18n.__)('Search %s'), title === null || title === void 0 ? void 0 : title.toLowerCase()).trim();
93
+ return (0, _element.createElement)("div", {
101
94
  className: "components-navigation__menu-title-search"
102
- }, (0, _element.createElement)(_icons.Icon, {
103
- icon: _icons.search
104
- }), (0, _element.createElement)(_visuallyHidden.VisuallyHidden, {
105
- as: "label",
106
- htmlFor: inputId,
107
- id: menuTitleId
108
- }, placeholder), (0, _element.createElement)("input", {
95
+ }, (0, _element.createElement)(_navigationStyles.MenuTitleSearchUI, {
109
96
  autoComplete: "off",
110
- className: "components-text-control__input",
97
+ className: "components-navigation__menu-search-input",
111
98
  id: inputId,
112
- onChange: event => onSearch(event.target.value),
99
+ onChange: value => onSearch(value),
113
100
  onKeyDown: onKeyDown,
114
101
  placeholder: placeholder,
102
+ onClose: onClose,
115
103
  ref: inputRef,
116
104
  type: "search",
117
105
  value: search
118
- }), (0, _element.createElement)(_button.default, {
119
- isSmall: true,
120
- variant: "tertiary",
121
- label: (0, _i18n.__)('Close search'),
122
- onClick: onClose
123
- }, (0, _element.createElement)(_icons.Icon, {
124
- icon: _icons.closeSmall
125
- })));
106
+ }));
126
107
  }
127
108
 
128
109
  var _default = (0, _withSpokenMessages.default)(MenuTitleSearch);
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/navigation/menu/menu-title-search.js"],"names":["MenuTitleSearch","debouncedSpeak","onCloseSearch","onSearch","search","title","navigationTree","items","menu","inputRef","delayedFocus","setTimeout","current","focus","SEARCH_FOCUS_DELAY","clearTimeout","count","length","resultsFoundMessage","onClose","onKeyDown","event","keyCode","ESCAPE","defaultPrevented","preventDefault","menuTitleId","inputId","placeholder","searchIcon","target","value","closeSmall"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { filter } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useEffect, useRef } from '@wordpress/element';\nimport { Icon, closeSmall, search as searchIcon } from '@wordpress/icons';\nimport { __, _n, sprintf } from '@wordpress/i18n';\nimport { ESCAPE } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport Button from '../../button';\nimport { VisuallyHidden } from '../../visually-hidden';\nimport withSpokenMessages from '../../higher-order/with-spoken-messages';\nimport { useNavigationMenuContext } from './context';\nimport { useNavigationContext } from '../context';\nimport { MenuTitleSearchUI } from '../styles/navigation-styles';\nimport { SEARCH_FOCUS_DELAY } from '../constants';\n\nfunction MenuTitleSearch( {\n\tdebouncedSpeak,\n\tonCloseSearch,\n\tonSearch,\n\tsearch,\n\ttitle,\n} ) {\n\tconst {\n\t\tnavigationTree: { items },\n\t} = useNavigationContext();\n\tconst { menu } = useNavigationMenuContext();\n\tconst inputRef = useRef();\n\n\t// Wait for the slide-in animation to complete before autofocusing the input.\n\t// This prevents scrolling to the input during the animation.\n\tuseEffect( () => {\n\t\tconst delayedFocus = setTimeout( () => {\n\t\t\tinputRef.current.focus();\n\t\t}, SEARCH_FOCUS_DELAY );\n\n\t\treturn () => {\n\t\t\tclearTimeout( delayedFocus );\n\t\t};\n\t}, [] );\n\n\tuseEffect( () => {\n\t\tif ( ! search ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst count = filter( items, '_isVisible' ).length;\n\t\tconst resultsFoundMessage = sprintf(\n\t\t\t/* translators: %d: number of results. */\n\t\t\t_n( '%d result found.', '%d results found.', count ),\n\t\t\tcount\n\t\t);\n\t\tdebouncedSpeak( resultsFoundMessage );\n\t}, [ items, search ] );\n\n\tconst onClose = () => {\n\t\tonSearch( '' );\n\t\tonCloseSearch();\n\t};\n\n\tfunction onKeyDown( event ) {\n\t\tif ( event.keyCode === ESCAPE && ! event.defaultPrevented ) {\n\t\t\tevent.preventDefault();\n\t\t\tonClose();\n\t\t}\n\t}\n\n\tconst menuTitleId = `components-navigation__menu-title-${ menu }`;\n\tconst inputId = `components-navigation__menu-title-search-${ menu }`;\n\t/* translators: placeholder for menu search box. %s: menu title */\n\tconst placeholder = sprintf( __( 'Search in %s' ), title );\n\n\treturn (\n\t\t<MenuTitleSearchUI className=\"components-navigation__menu-title-search\">\n\t\t\t<Icon icon={ searchIcon } />\n\n\t\t\t<VisuallyHidden as=\"label\" htmlFor={ inputId } id={ menuTitleId }>\n\t\t\t\t{ placeholder }\n\t\t\t</VisuallyHidden>\n\n\t\t\t<input\n\t\t\t\tautoComplete=\"off\"\n\t\t\t\tclassName=\"components-text-control__input\"\n\t\t\t\tid={ inputId }\n\t\t\t\tonChange={ ( event ) => onSearch( event.target.value ) }\n\t\t\t\tonKeyDown={ onKeyDown }\n\t\t\t\tplaceholder={ placeholder }\n\t\t\t\tref={ inputRef }\n\t\t\t\ttype=\"search\"\n\t\t\t\tvalue={ search }\n\t\t\t/>\n\n\t\t\t<Button\n\t\t\t\tisSmall\n\t\t\t\tvariant=\"tertiary\"\n\t\t\t\tlabel={ __( 'Close search' ) }\n\t\t\t\tonClick={ onClose }\n\t\t\t>\n\t\t\t\t<Icon icon={ closeSmall } />\n\t\t\t</Button>\n\t\t</MenuTitleSearchUI>\n\t);\n}\n\nexport default withSpokenMessages( MenuTitleSearch );\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/navigation/menu/menu-title-search.js"],"names":["MenuTitleSearch","debouncedSpeak","onCloseSearch","onSearch","search","title","navigationTree","items","menu","inputRef","delayedFocus","setTimeout","current","focus","SEARCH_FOCUS_DELAY","clearTimeout","count","length","resultsFoundMessage","onClose","onKeyDown","event","keyCode","ESCAPE","defaultPrevented","preventDefault","inputId","placeholder","toLowerCase","trim","value"],"mappings":";;;;;;;;;AAQA;;AALA;;AAMA;;AACA;;AAKA;;AACA;;AACA;;AACA;;AACA;;AAnBA;AACA;AACA;;AAGA;AACA;AACA;;AAKA;AACA;AACA;AAOA,SAASA,eAAT,CAA0B;AACzBC,EAAAA,cADyB;AAEzBC,EAAAA,aAFyB;AAGzBC,EAAAA,QAHyB;AAIzBC,EAAAA,MAJyB;AAKzBC,EAAAA;AALyB,CAA1B,EAMI;AACH,QAAM;AACLC,IAAAA,cAAc,EAAE;AAAEC,MAAAA;AAAF;AADX,MAEF,qCAFJ;AAGA,QAAM;AAAEC,IAAAA;AAAF,MAAW,wCAAjB;AACA,QAAMC,QAAQ,GAAG,sBAAjB,CALG,CAOH;AACA;;AACA,0BAAW,MAAM;AAChB,UAAMC,YAAY,GAAGC,UAAU,CAAE,MAAM;AACtCF,MAAAA,QAAQ,CAACG,OAAT,CAAiBC,KAAjB;AACA,KAF8B,EAE5BC,6BAF4B,CAA/B;AAIA,WAAO,MAAM;AACZC,MAAAA,YAAY,CAAEL,YAAF,CAAZ;AACA,KAFD;AAGA,GARD,EAQG,EARH;AAUA,0BAAW,MAAM;AAChB,QAAK,CAAEN,MAAP,EAAgB;AACf;AACA;;AAED,UAAMY,KAAK,GAAG,oBAAQT,KAAR,EAAe,YAAf,EAA8BU,MAA5C;AACA,UAAMC,mBAAmB,GAAG;AAC3B;AACA,kBAAI,kBAAJ,EAAwB,mBAAxB,EAA6CF,KAA7C,CAF2B,EAG3BA,KAH2B,CAA5B;AAKAf,IAAAA,cAAc,CAAEiB,mBAAF,CAAd;AACA,GAZD,EAYG,CAAEX,KAAF,EAASH,MAAT,CAZH;;AAcA,QAAMe,OAAO,GAAG,MAAM;AACrBhB,IAAAA,QAAQ,CAAE,EAAF,CAAR;AACAD,IAAAA,aAAa;AACb,GAHD;;AAKA,WAASkB,SAAT,CAAoBC,KAApB,EAA4B;AAC3B,QAAKA,KAAK,CAACC,OAAN,KAAkBC,gBAAlB,IAA4B,CAAEF,KAAK,CAACG,gBAAzC,EAA4D;AAC3DH,MAAAA,KAAK,CAACI,cAAN;AACAN,MAAAA,OAAO;AACP;AACD;;AAED,QAAMO,OAAO,GAAI,4CAA4ClB,IAAM,EAAnE;AACA,QAAMmB,WAAW,GAAG;AACnB;AACA,gBAAI,WAAJ,CAFmB,EAGnBtB,KAHmB,aAGnBA,KAHmB,uBAGnBA,KAAK,CAAEuB,WAAP,EAHmB,EAIlBC,IAJkB,EAApB;AAMA,SACC;AAAK,IAAA,SAAS,EAAC;AAAf,KACC,4BAAC,mCAAD;AACC,IAAA,YAAY,EAAC,KADd;AAEC,IAAA,SAAS,EAAC,0CAFX;AAGC,IAAA,EAAE,EAAGH,OAHN;AAIC,IAAA,QAAQ,EAAKI,KAAF,IAAa3B,QAAQ,CAAE2B,KAAF,CAJjC;AAKC,IAAA,SAAS,EAAGV,SALb;AAMC,IAAA,WAAW,EAAGO,WANf;AAOC,IAAA,OAAO,EAAGR,OAPX;AAQC,IAAA,GAAG,EAAGV,QARP;AASC,IAAA,IAAI,EAAC,QATN;AAUC,IAAA,KAAK,EAAGL;AAVT,IADD,CADD;AAgBA;;eAEc,iCAAoBJ,eAApB,C","sourcesContent":["/**\n * External dependencies\n */\nimport { filter } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useEffect, useRef } from '@wordpress/element';\nimport { __, _n, sprintf } from '@wordpress/i18n';\nimport { ESCAPE } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport withSpokenMessages from '../../higher-order/with-spoken-messages';\nimport { useNavigationMenuContext } from './context';\nimport { useNavigationContext } from '../context';\nimport { MenuTitleSearchUI } from '../styles/navigation-styles';\nimport { SEARCH_FOCUS_DELAY } from '../constants';\n\nfunction MenuTitleSearch( {\n\tdebouncedSpeak,\n\tonCloseSearch,\n\tonSearch,\n\tsearch,\n\ttitle,\n} ) {\n\tconst {\n\t\tnavigationTree: { items },\n\t} = useNavigationContext();\n\tconst { menu } = useNavigationMenuContext();\n\tconst inputRef = useRef();\n\n\t// Wait for the slide-in animation to complete before autofocusing the input.\n\t// This prevents scrolling to the input during the animation.\n\tuseEffect( () => {\n\t\tconst delayedFocus = setTimeout( () => {\n\t\t\tinputRef.current.focus();\n\t\t}, SEARCH_FOCUS_DELAY );\n\n\t\treturn () => {\n\t\t\tclearTimeout( delayedFocus );\n\t\t};\n\t}, [] );\n\n\tuseEffect( () => {\n\t\tif ( ! search ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst count = filter( items, '_isVisible' ).length;\n\t\tconst resultsFoundMessage = sprintf(\n\t\t\t/* translators: %d: number of results. */\n\t\t\t_n( '%d result found.', '%d results found.', count ),\n\t\t\tcount\n\t\t);\n\t\tdebouncedSpeak( resultsFoundMessage );\n\t}, [ items, search ] );\n\n\tconst onClose = () => {\n\t\tonSearch( '' );\n\t\tonCloseSearch();\n\t};\n\n\tfunction onKeyDown( event ) {\n\t\tif ( event.keyCode === ESCAPE && ! event.defaultPrevented ) {\n\t\t\tevent.preventDefault();\n\t\t\tonClose();\n\t\t}\n\t}\n\n\tconst inputId = `components-navigation__menu-title-search-${ menu }`;\n\tconst placeholder = sprintf(\n\t\t/* translators: placeholder for menu search box. %s: menu title */\n\t\t__( 'Search %s' ),\n\t\ttitle?.toLowerCase()\n\t).trim();\n\n\treturn (\n\t\t<div className=\"components-navigation__menu-title-search\">\n\t\t\t<MenuTitleSearchUI\n\t\t\t\tautoComplete=\"off\"\n\t\t\t\tclassName=\"components-navigation__menu-search-input\"\n\t\t\t\tid={ inputId }\n\t\t\t\tonChange={ ( value ) => onSearch( value ) }\n\t\t\t\tonKeyDown={ onKeyDown }\n\t\t\t\tplaceholder={ placeholder }\n\t\t\t\tonClose={ onClose }\n\t\t\t\tref={ inputRef }\n\t\t\t\ttype=\"search\"\n\t\t\t\tvalue={ search }\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nexport default withSpokenMessages( MenuTitleSearch );\n"]}
@@ -64,10 +64,10 @@ function NavigationMenuTitle({
64
64
  const searchButtonLabel = (0, _i18n.sprintf)((0, _i18n.__)('Search in %s'), title);
65
65
  return (0, _element.createElement)(_navigationStyles.MenuTitleUI, {
66
66
  className: "components-navigation__menu-title"
67
- }, !isSearching && (0, _element.createElement)(_navigationStyles.MenuTitleHeadingUI, {
67
+ }, !isSearching && (0, _element.createElement)(_navigationStyles.GroupTitleUI, {
68
68
  as: "h2",
69
69
  className: "components-navigation__menu-title-heading",
70
- variant: "title.small"
70
+ level: 3
71
71
  }, (0, _element.createElement)("span", {
72
72
  id: menuTitleId
73
73
  }, title), (hasSearch || titleAction) && (0, _element.createElement)(_navigationStyles.MenuTitleActionsUI, null, titleAction, hasSearch && (0, _element.createElement)(_button.default, {