@wordpress/components 35.0.0 → 35.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 (355) hide show
  1. package/CHANGELOG.md +20 -1
  2. package/build/alignment-matrix-control/cell.cjs +1 -1
  3. package/build/alignment-matrix-control/cell.cjs.map +2 -2
  4. package/build/alignment-matrix-control/index.cjs +1 -1
  5. package/build/alignment-matrix-control/index.cjs.map +2 -2
  6. package/build/color-palette/index.cjs +3 -0
  7. package/build/color-palette/index.cjs.map +2 -2
  8. package/build/custom-gradient-picker/gradient-bar/index.cjs.map +2 -2
  9. package/build/draggable/index.cjs +1 -1
  10. package/build/draggable/index.cjs.map +2 -2
  11. package/build/navigable-container/container.cjs +15 -21
  12. package/build/navigable-container/container.cjs.map +2 -2
  13. package/build/unit-control/utils.cjs +33 -35
  14. package/build/unit-control/utils.cjs.map +2 -2
  15. package/build-module/alignment-matrix-control/cell.mjs +1 -1
  16. package/build-module/alignment-matrix-control/cell.mjs.map +2 -2
  17. package/build-module/alignment-matrix-control/index.mjs +1 -1
  18. package/build-module/alignment-matrix-control/index.mjs.map +2 -2
  19. package/build-module/color-palette/index.mjs +3 -0
  20. package/build-module/color-palette/index.mjs.map +2 -2
  21. package/build-module/custom-gradient-picker/gradient-bar/index.mjs.map +2 -2
  22. package/build-module/draggable/index.mjs +1 -1
  23. package/build-module/draggable/index.mjs.map +2 -2
  24. package/build-module/navigable-container/container.mjs +16 -22
  25. package/build-module/navigable-container/container.mjs.map +2 -2
  26. package/build-module/unit-control/utils.mjs +33 -35
  27. package/build-module/unit-control/utils.mjs.map +2 -2
  28. package/build-style/style-rtl.css +41 -10
  29. package/build-style/style.css +41 -10
  30. package/build-types/card/context.d.ts +3 -0
  31. package/build-types/card/context.d.ts.map +1 -0
  32. package/build-types/color-palette/index.d.ts.map +1 -1
  33. package/build-types/custom-gradient-picker/gradient-bar/index.d.ts.map +1 -1
  34. package/build-types/date-time/date/index.d.ts +23 -0
  35. package/build-types/date-time/date/index.d.ts.map +1 -0
  36. package/build-types/date-time/date/styles.d.ts +45 -0
  37. package/build-types/date-time/date/styles.d.ts.map +1 -0
  38. package/build-types/date-time/date/test/index.d.ts +2 -0
  39. package/build-types/date-time/date/test/index.d.ts.map +1 -0
  40. package/build-types/date-time/date/test/use-lilius.d.ts +2 -0
  41. package/build-types/date-time/date/test/use-lilius.d.ts.map +1 -0
  42. package/build-types/date-time/date/use-lilius/index.d.ts +169 -0
  43. package/build-types/date-time/date/use-lilius/index.d.ts.map +1 -0
  44. package/build-types/date-time/time/index.d.ts +27 -0
  45. package/build-types/date-time/time/index.d.ts.map +1 -0
  46. package/build-types/date-time/time/styles.d.ts +93 -0
  47. package/build-types/date-time/time/styles.d.ts.map +1 -0
  48. package/build-types/date-time/time/test/index.d.ts +2 -0
  49. package/build-types/date-time/time/test/index.d.ts.map +1 -0
  50. package/build-types/date-time/time/time-input/index.d.ts +4 -0
  51. package/build-types/date-time/time/time-input/index.d.ts.map +1 -0
  52. package/build-types/date-time/time/time-input/test/index.d.ts +2 -0
  53. package/build-types/date-time/time/time-input/test/index.d.ts.map +1 -0
  54. package/build-types/date-time/time/timezone.d.ts +7 -0
  55. package/build-types/date-time/time/timezone.d.ts.map +1 -0
  56. package/build-types/navigable-container/container.d.ts.map +1 -1
  57. package/build-types/navigation/back-button/index.d.ts +7 -0
  58. package/build-types/navigation/back-button/index.d.ts.map +1 -0
  59. package/build-types/navigation/constants.d.ts +3 -0
  60. package/build-types/navigation/constants.d.ts.map +1 -0
  61. package/build-types/navigation/context.d.ts +4 -0
  62. package/build-types/navigation/context.d.ts.map +1 -0
  63. package/build-types/navigation/group/context.d.ts +7 -0
  64. package/build-types/navigation/group/context.d.ts.map +1 -0
  65. package/build-types/navigation/group/index.d.ts +7 -0
  66. package/build-types/navigation/group/index.d.ts.map +1 -0
  67. package/build-types/navigation/index.d.ts +46 -0
  68. package/build-types/navigation/index.d.ts.map +1 -0
  69. package/build-types/navigation/item/base-content.d.ts +3 -0
  70. package/build-types/navigation/item/base-content.d.ts.map +1 -0
  71. package/build-types/navigation/item/base.d.ts +3 -0
  72. package/build-types/navigation/item/base.d.ts.map +1 -0
  73. package/build-types/navigation/item/index.d.ts +7 -0
  74. package/build-types/navigation/item/index.d.ts.map +1 -0
  75. package/build-types/navigation/item/use-navigation-tree-item.d.ts +3 -0
  76. package/build-types/navigation/item/use-navigation-tree-item.d.ts.map +1 -0
  77. package/build-types/navigation/menu/context.d.ts +7 -0
  78. package/build-types/navigation/menu/context.d.ts.map +1 -0
  79. package/build-types/navigation/menu/index.d.ts +7 -0
  80. package/build-types/navigation/menu/index.d.ts.map +1 -0
  81. package/build-types/navigation/menu/menu-title-search.d.ts +3 -0
  82. package/build-types/navigation/menu/menu-title-search.d.ts.map +1 -0
  83. package/build-types/navigation/menu/menu-title.d.ts +3 -0
  84. package/build-types/navigation/menu/menu-title.d.ts.map +1 -0
  85. package/build-types/navigation/menu/search-no-results-found.d.ts +3 -0
  86. package/build-types/navigation/menu/search-no-results-found.d.ts.map +1 -0
  87. package/build-types/navigation/menu/use-navigation-tree-menu.d.ts +3 -0
  88. package/build-types/navigation/menu/use-navigation-tree-menu.d.ts.map +1 -0
  89. package/build-types/navigation/stories/index.story.d.ts +23 -0
  90. package/build-types/navigation/stories/index.story.d.ts.map +1 -0
  91. package/build-types/navigation/stories/utils/controlled-state.d.ts +7 -0
  92. package/build-types/navigation/stories/utils/controlled-state.d.ts.map +1 -0
  93. package/build-types/navigation/stories/utils/default.d.ts +10 -0
  94. package/build-types/navigation/stories/utils/default.d.ts.map +1 -0
  95. package/build-types/navigation/stories/utils/group.d.ts +10 -0
  96. package/build-types/navigation/stories/utils/group.d.ts.map +1 -0
  97. package/build-types/navigation/stories/utils/hide-if-empty.d.ts +10 -0
  98. package/build-types/navigation/stories/utils/hide-if-empty.d.ts.map +1 -0
  99. package/build-types/navigation/stories/utils/more-examples.d.ts +10 -0
  100. package/build-types/navigation/stories/utils/more-examples.d.ts.map +1 -0
  101. package/build-types/navigation/stories/utils/search.d.ts +10 -0
  102. package/build-types/navigation/stories/utils/search.d.ts.map +1 -0
  103. package/build-types/navigation/styles/navigation-styles.d.ts +55 -0
  104. package/build-types/navigation/styles/navigation-styles.d.ts.map +1 -0
  105. package/build-types/navigation/test/index.d.ts +2 -0
  106. package/build-types/navigation/test/index.d.ts.map +1 -0
  107. package/build-types/navigation/types.d.ts +266 -0
  108. package/build-types/navigation/types.d.ts.map +1 -0
  109. package/build-types/navigation/use-create-navigation-tree.d.ts +15 -0
  110. package/build-types/navigation/use-create-navigation-tree.d.ts.map +1 -0
  111. package/build-types/navigation/use-navigation-tree-nodes.d.ts +10 -0
  112. package/build-types/navigation/use-navigation-tree-nodes.d.ts.map +1 -0
  113. package/build-types/navigation/utils.d.ts +3 -0
  114. package/build-types/navigation/utils.d.ts.map +1 -0
  115. package/build-types/unit-control/utils.d.ts.map +1 -1
  116. package/build-types/validated-form-controls/components/combobox-control.d.ts +2 -2
  117. package/build-types/visually-hidden/test/index.d.ts +2 -0
  118. package/build-types/visually-hidden/test/index.d.ts.map +1 -0
  119. package/package.json +34 -32
  120. package/src/card/card/README.md +4 -4
  121. package/src/checkbox-control/README.md +1 -1
  122. package/src/clipboard-button/README.md +4 -4
  123. package/src/color-palette/index.tsx +5 -0
  124. package/src/color-palette/test/index.tsx +30 -0
  125. package/src/combobox-control/README.md +1 -1
  126. package/src/confirm-dialog/README.md +1 -1
  127. package/src/custom-gradient-picker/gradient-bar/index.tsx +1 -1
  128. package/src/flex/flex/README.md +1 -1
  129. package/src/navigable-container/container.tsx +22 -30
  130. package/src/popover/README.md +1 -1
  131. package/src/scrollable/README.md +1 -1
  132. package/src/tooltip/style.scss +1 -1
  133. package/src/unit-control/utils.ts +33 -52
  134. package/build/mobile/image/constants.cjs +0 -34
  135. package/build/mobile/image/constants.cjs.map +0 -7
  136. package/build-module/mobile/image/constants.mjs +0 -9
  137. package/build-module/mobile/image/constants.mjs.map +0 -7
  138. package/src/autocomplete/autocompleter-ui.native.js +0 -211
  139. package/src/autocomplete/background-view.android.js +0 -25
  140. package/src/autocomplete/background-view.ios.js +0 -23
  141. package/src/autocomplete/style.android.scss +0 -7
  142. package/src/autocomplete/style.native.scss +0 -74
  143. package/src/base-control/index.native.js +0 -14
  144. package/src/button/index.native.js +0 -236
  145. package/src/button/style.native.scss +0 -9
  146. package/src/color-control/index.native.js +0 -24
  147. package/src/color-indicator/index.native.js +0 -80
  148. package/src/color-indicator/style.native.scss +0 -51
  149. package/src/color-palette/index.native.js +0 -360
  150. package/src/color-palette/style.native.scss +0 -49
  151. package/src/color-picker/hsv-color-picker.native.js +0 -88
  152. package/src/color-picker/hue-picker.native.js +0 -198
  153. package/src/color-picker/index.native.js +0 -215
  154. package/src/color-picker/saturation-picker.native.js +0 -167
  155. package/src/color-picker/style.native.scss +0 -87
  156. package/src/custom-gradient-picker/index.native.js +0 -110
  157. package/src/custom-gradient-picker/style.native.scss +0 -3
  158. package/src/dashicon/index.native.js +0 -18
  159. package/src/disabled/index.native.js +0 -10
  160. package/src/draggable/index.native.js +0 -234
  161. package/src/draggable/style.native.scss +0 -3
  162. package/src/draggable/test/index.native.js +0 -138
  163. package/src/dropdown/index.native.js +0 -59
  164. package/src/dropdown-menu/index.native.js +0 -152
  165. package/src/external-link/index.native.js +0 -25
  166. package/src/focal-point-picker/focal-point.native.js +0 -30
  167. package/src/focal-point-picker/index.native.js +0 -281
  168. package/src/focal-point-picker/tooltip/index.native.js +0 -144
  169. package/src/focal-point-picker/tooltip/style.native.scss +0 -42
  170. package/src/font-size-picker/index.native.js +0 -190
  171. package/src/font-size-picker/style.native.scss +0 -6
  172. package/src/footer-message-control/index.native.js +0 -14
  173. package/src/higher-order/with-focus-outside/index.native.js +0 -38
  174. package/src/index.native.js +0 -134
  175. package/src/keyboard-shortcuts/index.native.js +0 -2
  176. package/src/mobile/README.md +0 -3
  177. package/src/mobile/autocompletion-items.native.js +0 -11
  178. package/src/mobile/badge/README.md +0 -31
  179. package/src/mobile/badge/index.native.js +0 -27
  180. package/src/mobile/badge/style.scss +0 -18
  181. package/src/mobile/bottom-sheet/borderStyles.android.scss +0 -8
  182. package/src/mobile/bottom-sheet/borderStyles.ios.scss +0 -9
  183. package/src/mobile/bottom-sheet/bottom-sheet-context.native.js +0 -40
  184. package/src/mobile/bottom-sheet/bottom-sheet-navigation/README.md +0 -101
  185. package/src/mobile/bottom-sheet/bottom-sheet-navigation/bottom-sheet-navigation-context.native.js +0 -16
  186. package/src/mobile/bottom-sheet/bottom-sheet-navigation/navigation-container.native.js +0 -193
  187. package/src/mobile/bottom-sheet/bottom-sheet-navigation/navigation-screen.native.js +0 -146
  188. package/src/mobile/bottom-sheet/bottom-sheet-navigation/styles.native.scss +0 -11
  189. package/src/mobile/bottom-sheet/bottom-sheet-navigation/test/navigation-container.native.js +0 -197
  190. package/src/mobile/bottom-sheet/button.native.js +0 -19
  191. package/src/mobile/bottom-sheet/cell.native.js +0 -464
  192. package/src/mobile/bottom-sheet/cellStyles.android.scss +0 -15
  193. package/src/mobile/bottom-sheet/cellStyles.ios.scss +0 -19
  194. package/src/mobile/bottom-sheet/chevron-back.native.js +0 -18
  195. package/src/mobile/bottom-sheet/color-cell.native.js +0 -35
  196. package/src/mobile/bottom-sheet/cycle-picker-cell.native.js +0 -31
  197. package/src/mobile/bottom-sheet/footer-message-cell.native.js +0 -23
  198. package/src/mobile/bottom-sheet/footer-message-link/README.md +0 -37
  199. package/src/mobile/bottom-sheet/footer-message-link/footer-message-link.native.js +0 -26
  200. package/src/mobile/bottom-sheet/footer-message-link/styles.native.scss +0 -7
  201. package/src/mobile/bottom-sheet/index.native.js +0 -646
  202. package/src/mobile/bottom-sheet/keyboard-avoiding-view.native.js +0 -125
  203. package/src/mobile/bottom-sheet/link-cell.native.js +0 -35
  204. package/src/mobile/bottom-sheet/link-suggestion-item-cell.native.js +0 -92
  205. package/src/mobile/bottom-sheet/link-suggestion-styles.native.scss +0 -27
  206. package/src/mobile/bottom-sheet/lock-icon/index.native.js +0 -19
  207. package/src/mobile/bottom-sheet/lock-icon/styles.native.scss +0 -8
  208. package/src/mobile/bottom-sheet/nav-bar/README.md +0 -63
  209. package/src/mobile/bottom-sheet/nav-bar/action-button.native.js +0 -30
  210. package/src/mobile/bottom-sheet/nav-bar/apply-button.native.js +0 -53
  211. package/src/mobile/bottom-sheet/nav-bar/back-button.native.js +0 -94
  212. package/src/mobile/bottom-sheet/nav-bar/heading.native.js +0 -33
  213. package/src/mobile/bottom-sheet/nav-bar/index.native.js +0 -23
  214. package/src/mobile/bottom-sheet/nav-bar/styles.native.scss +0 -69
  215. package/src/mobile/bottom-sheet/picker-cell.native.js +0 -40
  216. package/src/mobile/bottom-sheet/radio-cell.native.js +0 -39
  217. package/src/mobile/bottom-sheet/range-cell.native.js +0 -274
  218. package/src/mobile/bottom-sheet/range-cell.native.scss +0 -40
  219. package/src/mobile/bottom-sheet/range-text-input.native.js +0 -248
  220. package/src/mobile/bottom-sheet/ripple.native.js +0 -83
  221. package/src/mobile/bottom-sheet/ripple.native.scss +0 -11
  222. package/src/mobile/bottom-sheet/stepper-cell/index.native.js +0 -264
  223. package/src/mobile/bottom-sheet/stepper-cell/stepper.android.js +0 -78
  224. package/src/mobile/bottom-sheet/stepper-cell/stepper.ios.js +0 -64
  225. package/src/mobile/bottom-sheet/stepper-cell/style.native.scss +0 -89
  226. package/src/mobile/bottom-sheet/styles.native.scss +0 -333
  227. package/src/mobile/bottom-sheet/sub-sheet/README.md +0 -90
  228. package/src/mobile/bottom-sheet/sub-sheet/index.native.js +0 -49
  229. package/src/mobile/bottom-sheet/switch-cell.native.js +0 -75
  230. package/src/mobile/bottom-sheet/test/index.native.js +0 -24
  231. package/src/mobile/bottom-sheet/test/range-cell.native.js +0 -73
  232. package/src/mobile/bottom-sheet-select-control/README.md +0 -97
  233. package/src/mobile/bottom-sheet-select-control/index.native.js +0 -124
  234. package/src/mobile/bottom-sheet-select-control/style.native.scss +0 -3
  235. package/src/mobile/bottom-sheet-text-control/README.md +0 -98
  236. package/src/mobile/bottom-sheet-text-control/index.native.js +0 -104
  237. package/src/mobile/bottom-sheet-text-control/styles.scss +0 -25
  238. package/src/mobile/clipboard/index.native.js +0 -18
  239. package/src/mobile/color-settings/gradient-picker-screen.native.js +0 -37
  240. package/src/mobile/color-settings/index.native.js +0 -88
  241. package/src/mobile/color-settings/palette.screen.native.js +0 -232
  242. package/src/mobile/color-settings/picker-screen.native.js +0 -60
  243. package/src/mobile/color-settings/style.native.scss +0 -62
  244. package/src/mobile/color-settings/utils.native.js +0 -36
  245. package/src/mobile/cycle-select-control/README.md +0 -3
  246. package/src/mobile/cycle-select-control/index.native.js +0 -39
  247. package/src/mobile/dashicons/index.native.js +0 -22
  248. package/src/mobile/focal-point-settings-panel/index.native.js +0 -84
  249. package/src/mobile/focal-point-settings-panel/styles.native.scss +0 -3
  250. package/src/mobile/gradient/index.native.js +0 -188
  251. package/src/mobile/gradient/style.native.scss +0 -8
  252. package/src/mobile/gradient/test/index.native.js +0 -114
  253. package/src/mobile/gridicons/index.native.js +0 -39
  254. package/src/mobile/html-text-input/index.native.js +0 -169
  255. package/src/mobile/html-text-input/style.android.scss +0 -8
  256. package/src/mobile/html-text-input/style.ios.scss +0 -10
  257. package/src/mobile/html-text-input/style.scss +0 -45
  258. package/src/mobile/html-text-input/test/__snapshots__/index.native.js.snap +0 -48
  259. package/src/mobile/html-text-input/test/index.native.js +0 -118
  260. package/src/mobile/image/constants.js +0 -1
  261. package/src/mobile/image/icon-customize.native.js +0 -10
  262. package/src/mobile/image/icon-retry.native.js +0 -11
  263. package/src/mobile/image/image-editing-button.native.js +0 -63
  264. package/src/mobile/image/index.native.js +0 -401
  265. package/src/mobile/image/style.native.scss +0 -179
  266. package/src/mobile/image/utils/index.native.js +0 -58
  267. package/src/mobile/keyboard-avoiding-view/index.android.js +0 -8
  268. package/src/mobile/keyboard-avoiding-view/index.ios.js +0 -143
  269. package/src/mobile/keyboard-avoiding-view/styles.native.scss +0 -9
  270. package/src/mobile/keyboard-aware-flat-list/index.android.js +0 -81
  271. package/src/mobile/keyboard-aware-flat-list/index.ios.js +0 -147
  272. package/src/mobile/keyboard-aware-flat-list/shared.native.js +0 -26
  273. package/src/mobile/keyboard-aware-flat-list/styles.native.scss +0 -8
  274. package/src/mobile/keyboard-aware-flat-list/test/use-keyboard-offset.native.js +0 -203
  275. package/src/mobile/keyboard-aware-flat-list/test/use-scroll-to-section.native.js +0 -142
  276. package/src/mobile/keyboard-aware-flat-list/test/use-scroll.native.js +0 -71
  277. package/src/mobile/keyboard-aware-flat-list/test/use-text-input-caret-position.native.js +0 -82
  278. package/src/mobile/keyboard-aware-flat-list/test/use-text-input-offset.native.js +0 -147
  279. package/src/mobile/keyboard-aware-flat-list/use-keyboard-offset.native.js +0 -87
  280. package/src/mobile/keyboard-aware-flat-list/use-scroll-to-element.native.js +0 -41
  281. package/src/mobile/keyboard-aware-flat-list/use-scroll-to-section.native.js +0 -100
  282. package/src/mobile/keyboard-aware-flat-list/use-scroll.native.js +0 -100
  283. package/src/mobile/keyboard-aware-flat-list/use-text-input-caret-position.native.js +0 -36
  284. package/src/mobile/keyboard-aware-flat-list/use-text-input-offset.native.js +0 -54
  285. package/src/mobile/layout-animation/index.native.js +0 -16
  286. package/src/mobile/link-picker/index.native.js +0 -160
  287. package/src/mobile/link-picker/link-picker-results.native.js +0 -129
  288. package/src/mobile/link-picker/link-picker-screen.native.js +0 -60
  289. package/src/mobile/link-picker/styles.native.scss +0 -45
  290. package/src/mobile/link-picker/test/performance/index.native.js +0 -35
  291. package/src/mobile/link-settings/index.native.js +0 -332
  292. package/src/mobile/link-settings/link-rel.native.js +0 -10
  293. package/src/mobile/link-settings/link-settings-navigation.native.js +0 -50
  294. package/src/mobile/link-settings/link-settings-screen.native.js +0 -44
  295. package/src/mobile/link-settings/style.native.scss +0 -4
  296. package/src/mobile/link-settings/test/edit.native.js +0 -325
  297. package/src/mobile/link-settings/test/link-settings-navigation.native.js +0 -94
  298. package/src/mobile/media-edit/index.native.js +0 -125
  299. package/src/mobile/picker/index.android.js +0 -104
  300. package/src/mobile/picker/index.ios.js +0 -96
  301. package/src/mobile/picker/styles.native.scss +0 -29
  302. package/src/mobile/segmented-control/index.native.js +0 -186
  303. package/src/mobile/segmented-control/style.native.scss +0 -99
  304. package/src/mobile/utils/alignments.native.js +0 -78
  305. package/src/mobile/utils/get-px-from-css-unit.native.js +0 -329
  306. package/src/mobile/utils/index.native.js +0 -12
  307. package/src/mobile/utils/test/get-px-from-css-unit.native.js +0 -172
  308. package/src/mobile/utils/test/index.native.js +0 -134
  309. package/src/mobile/utils/use-is-floating-keyboard.native.js +0 -31
  310. package/src/mobile/utils/use-unit-converter-to-mobile.native.js +0 -90
  311. package/src/notice/index.native.js +0 -123
  312. package/src/notice/list.native.js +0 -55
  313. package/src/notice/style.native.scss +0 -60
  314. package/src/panel/actions.native.js +0 -46
  315. package/src/panel/actions.native.scss +0 -12
  316. package/src/panel/body.native.js +0 -29
  317. package/src/panel/body.native.scss +0 -11
  318. package/src/panel/bottom-separator-cover.native.js +0 -27
  319. package/src/panel/bottom-separator-cover.native.scss +0 -9
  320. package/src/private-apis.native.js +0 -13
  321. package/src/query-controls/index.native.js +0 -103
  322. package/src/radio-control/index.native.js +0 -24
  323. package/src/range-control/index.native.js +0 -73
  324. package/src/resizable-box/index.native.js +0 -32
  325. package/src/resizable-box/style.native.scss +0 -14
  326. package/src/sandbox/index.native.js +0 -392
  327. package/src/sandbox/style.native.scss +0 -7
  328. package/src/search-control/index.native.js +0 -274
  329. package/src/search-control/platform-style.android.scss +0 -57
  330. package/src/search-control/platform-style.ios.scss +0 -43
  331. package/src/search-control/style.native.scss +0 -63
  332. package/src/select-control/index.native.js +0 -41
  333. package/src/slot-fill/index.native.js +0 -25
  334. package/src/spinner/index.native.js +0 -22
  335. package/src/spinner/style.native.scss +0 -4
  336. package/src/style-provider/index.native.js +0 -3
  337. package/src/text/index.native.js +0 -13
  338. package/src/text/styles/emotion-css.native.js +0 -6
  339. package/src/text/styles/font-family.native.js +0 -1
  340. package/src/text/styles/text-mixins.native.js +0 -163
  341. package/src/text-control/index.native.js +0 -41
  342. package/src/textarea-control/index.native.js +0 -26
  343. package/src/toggle-control/index.native.js +0 -31
  344. package/src/toolbar/toolbar/style.native.scss +0 -11
  345. package/src/toolbar/toolbar/toolbar-container.native.js +0 -8
  346. package/src/toolbar/toolbar-button/toolbar-button-container.native.js +0 -8
  347. package/src/toolbar/toolbar-group/style.native.scss +0 -10
  348. package/src/toolbar/toolbar-group/toolbar-group-collapsed.native.js +0 -36
  349. package/src/toolbar/toolbar-group/toolbar-group-container.native.js +0 -26
  350. package/src/toolbar/toolbar-item/index.native.js +0 -17
  351. package/src/tooltip/index.native.js +0 -292
  352. package/src/tooltip/style.native.scss +0 -39
  353. package/src/tooltip/test/index.native.js +0 -98
  354. package/src/unit-control/index.native.js +0 -202
  355. package/src/unit-control/style.native.scss +0 -19
@@ -1,32 +0,0 @@
1
- /**
2
- * External dependencies
3
- */
4
- import { View } from 'react-native';
5
- /**
6
- * WordPress dependencies
7
- */
8
- import { withPreferredColorScheme } from '@wordpress/compose';
9
- /**
10
- * Internal dependencies
11
- */
12
- import styles from './style.scss';
13
-
14
- function ResizableBox( props ) {
15
- const { size, showHandle = true, getStylesFromColorScheme } = props;
16
- const { height } = size;
17
- const defaultStyle = getStylesFromColorScheme(
18
- styles.staticSpacer,
19
- styles.staticDarkSpacer
20
- );
21
- return (
22
- <View
23
- style={ [
24
- defaultStyle,
25
- showHandle && styles.selectedSpacer,
26
- { height },
27
- ] }
28
- ></View>
29
- );
30
- }
31
-
32
- export default withPreferredColorScheme( ResizableBox );
@@ -1,14 +0,0 @@
1
- .staticSpacer {
2
- height: 20px;
3
- background-color: transparent;
4
- border: $border-width dashed $light-gray-500;
5
- border-radius: 1px;
6
- }
7
-
8
- .staticDarkSpacer {
9
- border: $border-width dashed rgba($color: $light-gray-500, $alpha: 0.3);
10
- }
11
-
12
- .selectedSpacer {
13
- border: $border-width * 2 solid $blue-30;
14
- }
@@ -1,392 +0,0 @@
1
- /**
2
- * External dependencies
3
- */
4
- import { Dimensions, StyleSheet } from 'react-native';
5
- import { WebView } from 'react-native-webview';
6
-
7
- /**
8
- * WordPress dependencies
9
- */
10
- import {
11
- Platform,
12
- renderToString,
13
- memo,
14
- useRef,
15
- useState,
16
- useEffect,
17
- forwardRef,
18
- useCallback,
19
- } from '@wordpress/element';
20
- import { usePreferredColorScheme } from '@wordpress/compose';
21
-
22
- /**
23
- * Internal dependencies
24
- */
25
- import sandboxStyles from './style.scss';
26
-
27
- const observeAndResizeJS = `
28
- (function() {
29
- const { MutationObserver } = window;
30
-
31
- if ( ! MutationObserver || ! document.body || ! window.parent ) {
32
- return;
33
- }
34
-
35
- function sendResize() {
36
- const clientBoundingRect = document.body.getBoundingClientRect();
37
-
38
- // The function postMessage is exposed by the react-native-webview library
39
- // to communicate between React Native and the WebView, in this case,
40
- // we use it for notifying resize changes.
41
- window.ReactNativeWebView.postMessage(
42
- JSON.stringify( {
43
- action: 'resize',
44
- width: clientBoundingRect.width,
45
- height: clientBoundingRect.height,
46
- } )
47
- );
48
- }
49
-
50
- const observer = new MutationObserver( sendResize );
51
- observer.observe( document.body, {
52
- attributes: true,
53
- attributeOldValue: false,
54
- characterData: true,
55
- characterDataOldValue: false,
56
- childList: true,
57
- subtree: true,
58
- } );
59
-
60
- window.addEventListener( 'load', sendResize, true );
61
-
62
- // Hack: Remove viewport unit styles, as these are relative
63
- // the iframe root and interfere with our mechanism for
64
- // determining the unconstrained page bounds.
65
- function removeViewportStyles( ruleOrNode ) {
66
- if ( ruleOrNode.style ) {
67
- [ 'width', 'height', 'minHeight', 'maxHeight' ].forEach( function (
68
- style
69
- ) {
70
- if (
71
- /^\\d+(vw|vh|svw|lvw|dvw|svh|lvh|dvh|vi|svi|lvi|dvi|vb|svb|lvb|dvb|vmin|svmin|lvmin|dvmin|vmax|svmax|lvmax|dvmax)$/.test( ruleOrNode.style[ style ] )
72
- ) {
73
- ruleOrNode.style[ style ] = '';
74
- }
75
- } );
76
- }
77
- }
78
-
79
- Array.prototype.forEach.call(
80
- document.querySelectorAll( '[style]' ),
81
- removeViewportStyles
82
- );
83
- Array.prototype.forEach.call(
84
- document.styleSheets,
85
- function ( stylesheet ) {
86
- Array.prototype.forEach.call(
87
- stylesheet.cssRules || stylesheet.rules,
88
- removeViewportStyles
89
- );
90
- }
91
- );
92
-
93
- document.body.style.position = 'absolute';
94
- document.body.style.width = '100%';
95
- document.body.setAttribute( 'data-resizable-iframe-connected', '' );
96
-
97
- sendResize();
98
-
99
- // Resize events can change the width of elements with 100% width, but we don't
100
- // get an DOM mutations for that, so do the resize when the window is resized, too.
101
- window.addEventListener( 'resize', sendResize, true );
102
- window.addEventListener( 'orientationchange', sendResize, true );
103
- })();
104
- `;
105
-
106
- const style = `
107
- body {
108
- margin: 0;
109
- }
110
- html,
111
- body,
112
- body > div,
113
- body > div iframe {
114
- width: 100%;
115
- }
116
- body > div > * {
117
- margin-top: 0 !important; /* Has to have !important to override inline styles. */
118
- margin-bottom: 0 !important;
119
- }
120
-
121
- .wp-block-embed__wrapper {
122
- position: relative;
123
- }
124
-
125
- body.wp-has-aspect-ratio > div iframe {
126
- height: 100%;
127
- overflow: hidden; /* If it has an aspect ratio, it shouldn't scroll. */
128
- }
129
-
130
- /**
131
- * Add responsiveness to embeds with aspect ratios.
132
- *
133
- * These styles have been copied from the web version (https://github.com/WordPress/gutenberg/blob/7901895ca20cf61e402925e31571d659dab64721/packages/block-library/src/embed/style.scss#L42-L89) and
134
- * adapted for the native version.
135
- */
136
- .wp-has-aspect-ratio.wp-block-embed__wrapper::before {
137
- content: "";
138
- display: block;
139
- padding-top: 50%; // Default to 2:1 aspect ratio.
140
- }
141
- .wp-has-aspect-ratio iframe {
142
- position: absolute;
143
- top: 0;
144
- right: 0;
145
- bottom: 0;
146
- left: 0;
147
- height: 100%;
148
- width: 100%;
149
- }
150
- .wp-embed-aspect-21-9.wp-block-embed__wrapper::before {
151
- padding-top: 42.85%; // 9 / 21 * 100
152
- }
153
- .wp-embed-aspect-18-9.wp-block-embed__wrapper::before {
154
- padding-top: 50%; // 9 / 18 * 100
155
- }
156
- .wp-embed-aspect-16-9.wp-block-embed__wrapper::before {
157
- padding-top: 56.25%; // 9 / 16 * 100
158
- }
159
- .wp-embed-aspect-4-3.wp-block-embed__wrapper::before {
160
- padding-top: 75%; // 3 / 4 * 100
161
- }
162
- .wp-embed-aspect-1-1.wp-block-embed__wrapper::before {
163
- padding-top: 100%; // 1 / 1 * 100
164
- }
165
- .wp-embed-aspect-9-16.wp-block-embed__wrapper::before {
166
- padding-top: 177.77%; // 16 / 9 * 100
167
- }
168
- .wp-embed-aspect-1-2.wp-block-embed__wrapper::before {
169
- padding-top: 200%; // 2 / 1 * 100
170
- }
171
- `;
172
-
173
- const EMPTY_ARRAY = [];
174
-
175
- const Sandbox = forwardRef( function UnforwardedSandbox(
176
- {
177
- containerStyle,
178
- customJS,
179
- html = '',
180
- lang = 'en',
181
- providerUrl = '',
182
- scripts = EMPTY_ARRAY,
183
- styles = EMPTY_ARRAY,
184
- title = '',
185
- type,
186
- url,
187
- onWindowEvents = {},
188
- viewportProps = '',
189
- onLoadEnd = () => {},
190
- testID,
191
- },
192
- ref
193
- ) {
194
- const colorScheme = usePreferredColorScheme();
195
- const [ height, setHeight ] = useState( 0 );
196
- const [ contentHtml, setContentHtml ] = useState( getHtmlDoc() );
197
-
198
- const windowSize = Dimensions.get( 'window' );
199
- const [ isLandscape, setIsLandscape ] = useState(
200
- windowSize.width >= windowSize.height
201
- );
202
- const wasLandscape = useRef( isLandscape );
203
- // On Android, we need to recreate the WebView on any of the following actions, otherwise it disappears:
204
- // - Device rotation
205
- // - Light/dark mode changes
206
- // For this purpose, the key prop used in the WebView will be updated with the value of the actions.
207
- const key = Platform.select( {
208
- android: `${ url }-${
209
- isLandscape ? 'landscape' : 'portrait'
210
- }-${ colorScheme }`,
211
- ios: url,
212
- } );
213
-
214
- function getHtmlDoc() {
215
- // Put the html snippet into a html document, and update the state to refresh the WebView,
216
- // we can use this in the future to inject custom styles or scripts.
217
- // Scripts go into the body rather than the head, to support embedded content such as Instagram
218
- // that expect the scripts to be part of the body.
219
-
220
- // Avoid comma issues with props.viewportProps.
221
- const addViewportProps = viewportProps
222
- .trim()
223
- .replace( /(^[^,])/, ', $1' );
224
-
225
- const htmlDoc = (
226
- <html lang={ lang }>
227
- <head>
228
- <title>{ title }</title>
229
- <meta
230
- name="viewport"
231
- content={ `width=device-width, initial-scale=1${ addViewportProps }` }
232
- ></meta>
233
- <style dangerouslySetInnerHTML={ { __html: style } } />
234
- { styles.map( ( rules, i ) => (
235
- <style
236
- key={ i }
237
- dangerouslySetInnerHTML={ { __html: rules } }
238
- />
239
- ) ) }
240
- </head>
241
- <body
242
- data-resizable-iframe-connected="data-resizable-iframe-connected"
243
- className={ type }
244
- >
245
- <div dangerouslySetInnerHTML={ { __html: html } } />
246
- { scripts.map( ( src ) => (
247
- <script key={ src } src={ src } />
248
- ) ) }
249
- </body>
250
- </html>
251
- );
252
- return '<!DOCTYPE html>' + renderToString( htmlDoc );
253
- }
254
-
255
- const getInjectedJavaScript = useCallback( () => {
256
- // Allow parent to override the resize observers with prop.customJS (legacy support)
257
- let injectedJS = customJS || observeAndResizeJS;
258
-
259
- // Add any event listeners that were passed in.
260
- Object.keys( onWindowEvents ).forEach( ( eventType ) => {
261
- injectedJS += `
262
- window.addEventListener( '${ eventType }', function( event ) {
263
- window.ReactNativeWebView.postMessage( JSON.stringify( { type: '${ eventType }', ...event.data } ) );
264
- });`;
265
- } );
266
-
267
- return injectedJS;
268
- }, [ customJS, onWindowEvents ] );
269
-
270
- function updateContentHtml( forceRerender = false ) {
271
- const newContentHtml = getHtmlDoc();
272
-
273
- if ( forceRerender && contentHtml === newContentHtml ) {
274
- // The re-render is forced by updating the state with empty HTML,
275
- // waiting for the JS code to be executed with "setImmediate" and then
276
- // setting the content HTML again.
277
- setContentHtml( '' );
278
- setImmediate( () => setContentHtml( newContentHtml ) );
279
- } else {
280
- setContentHtml( newContentHtml );
281
- }
282
- }
283
-
284
- function getSizeStyle() {
285
- const contentHeight = Math.ceil( height );
286
-
287
- return contentHeight ? { height: contentHeight } : { aspectRatio: 1 };
288
- }
289
-
290
- function onChangeDimensions( dimensions ) {
291
- setIsLandscape( dimensions.window.width >= dimensions.window.height );
292
- }
293
-
294
- const onMessage = useCallback(
295
- ( message ) => {
296
- let data = message?.nativeEvent?.data;
297
-
298
- try {
299
- data = JSON.parse( data );
300
- } catch {
301
- return;
302
- }
303
-
304
- // check for resize event
305
- if ( 'resize' === data?.action ) {
306
- setHeight( data.height );
307
- }
308
-
309
- // Forward the event to parent event listeners
310
- Object.keys( onWindowEvents ).forEach( ( eventType ) => {
311
- if ( data?.type === eventType ) {
312
- try {
313
- onWindowEvents[ eventType ]( data );
314
- } catch ( e ) {
315
- // eslint-disable-next-line no-console
316
- console.warn(
317
- `Error handling event ${ eventType }`,
318
- e
319
- );
320
- }
321
- }
322
- } );
323
- },
324
- [ onWindowEvents ]
325
- );
326
-
327
- useEffect( () => {
328
- const dimensionsChangeSubscription = Dimensions.addEventListener(
329
- 'change',
330
- onChangeDimensions
331
- );
332
- return () => {
333
- dimensionsChangeSubscription.remove();
334
- };
335
- }, [] );
336
-
337
- useEffect( () => {
338
- updateContentHtml();
339
- // See https://github.com/WordPress/gutenberg/pull/41166
340
- }, [ html, title, type, styles, scripts ] );
341
-
342
- useEffect( () => {
343
- // When device orientation changes we have to recalculate the size,
344
- // for this purpose we reset the current size value.
345
- if ( wasLandscape.current !== isLandscape ) {
346
- setHeight( 0 );
347
- }
348
- wasLandscape.current = isLandscape;
349
- }, [ isLandscape ] );
350
-
351
- return (
352
- <WebView
353
- containerStyle={ [
354
- sandboxStyles[ 'sandbox-webview__container' ],
355
- containerStyle,
356
- ] }
357
- injectedJavaScript={ getInjectedJavaScript() }
358
- key={ key }
359
- ref={ ref }
360
- source={ { baseUrl: providerUrl, html: contentHtml } }
361
- // Wildcard value is required for static HTML
362
- // Reference: https://github.com/react-native-webview/react-native-webview/blob/master/docs/Reference.md#source
363
- originWhitelist={ [ '*' ] }
364
- style={ [
365
- sandboxStyles[ 'sandbox-webview__content' ],
366
- getSizeStyle(),
367
- Platform.isAndroid && workaroundStyles.webView,
368
- ] }
369
- onMessage={ onMessage }
370
- scrollEnabled={ false }
371
- setBuiltInZoomControls={ false }
372
- showsHorizontalScrollIndicator={ false }
373
- showsVerticalScrollIndicator={ false }
374
- mediaPlaybackRequiresUserAction={ false }
375
- onLoadEnd={ onLoadEnd }
376
- testID={ testID }
377
- />
378
- );
379
- } );
380
-
381
- const workaroundStyles = StyleSheet.create( {
382
- webView: {
383
- /**
384
- * The slight opacity below is a workaround for an Android crash caused from combining Android
385
- * 12's new scroll overflow behavior and webviews.
386
- * https://github.com/react-native-webview/react-native-webview/issues/1915#issuecomment-808869253
387
- */
388
- opacity: 0.99,
389
- },
390
- } );
391
-
392
- export default memo( Sandbox );
@@ -1,7 +0,0 @@
1
- .sandbox-webview__container {
2
- width: 100%;
3
- }
4
-
5
- .sandbox-webview__content {
6
- background-color: transparent;
7
- }
@@ -1,274 +0,0 @@
1
- /**
2
- * External dependencies
3
- */
4
- import {
5
- TextInput,
6
- Text,
7
- View,
8
- TouchableOpacity,
9
- Platform,
10
- useColorScheme,
11
- Keyboard,
12
- } from 'react-native';
13
-
14
- /**
15
- * WordPress dependencies
16
- */
17
- import {
18
- useState,
19
- useRef,
20
- useMemo,
21
- useEffect,
22
- useCallback,
23
- } from '@wordpress/element';
24
- import { __ } from '@wordpress/i18n';
25
- import {
26
- Icon,
27
- cancelCircleFilled as cancelCircleFilledIcon,
28
- arrowLeft as arrowLeftIcon,
29
- close as closeIcon,
30
- } from '@wordpress/icons';
31
-
32
- /**
33
- * Internal dependencies
34
- */
35
- import allStyles from './style.scss';
36
- import platformStyles from './platform-style.scss';
37
- import Button from '../button';
38
- import Gridicons from '../mobile/gridicons';
39
-
40
- // Merge platform specific styles with the default styles.
41
- const baseStyles = { ...allStyles };
42
- for ( const selector in platformStyles ) {
43
- baseStyles[ selector ] = {
44
- ...baseStyles[ selector ],
45
- ...platformStyles[ selector ],
46
- };
47
- }
48
-
49
- function selectModifiedStyles( styles, modifier ) {
50
- const modifierMatcher = new RegExp( `--${ modifier }$` );
51
- const modifierSelectors = Object.keys( styles ).filter( ( selector ) =>
52
- selector.match( modifierMatcher )
53
- );
54
-
55
- return modifierSelectors.reduce( ( modifiedStyles, modifierSelector ) => {
56
- const blockElementSelector = modifierSelector.split( '--' )[ 0 ];
57
- modifiedStyles[ blockElementSelector ] = styles[ modifierSelector ];
58
- return modifiedStyles;
59
- }, {} );
60
- }
61
-
62
- function mergeStyles( styles, updateStyles, selectors ) {
63
- selectors.forEach( ( selector ) => {
64
- styles[ selector ] = {
65
- ...styles[ selector ],
66
- ...updateStyles[ selector ],
67
- };
68
- } );
69
-
70
- return styles;
71
- }
72
-
73
- function SearchControl( {
74
- value,
75
- onChange,
76
- placeholder = __( 'Search blocks' ),
77
- } ) {
78
- const [ isActive, setIsActive ] = useState( false );
79
- const [ currentStyles, setCurrentStyles ] = useState( baseStyles );
80
-
81
- const isDark = useColorScheme() === 'dark';
82
- const inputRef = useRef();
83
- const onCancelTimer = useRef();
84
-
85
- const isIOS = Platform.OS === 'ios';
86
-
87
- const darkStyles = useMemo( () => {
88
- return selectModifiedStyles( baseStyles, 'dark' );
89
- }, [] );
90
-
91
- const activeStyles = useMemo( () => {
92
- return selectModifiedStyles( baseStyles, 'active' );
93
- }, [] );
94
-
95
- const activeDarkStyles = useMemo( () => {
96
- return selectModifiedStyles( baseStyles, 'active-dark' );
97
- }, [] );
98
-
99
- useEffect( () => {
100
- let futureStyles = { ...baseStyles };
101
-
102
- function mergeFutureStyles( modifiedStyles, shouldUseConditions ) {
103
- const shouldUseModified = shouldUseConditions.every(
104
- ( should ) => should
105
- );
106
-
107
- const updatedStyles = shouldUseModified
108
- ? modifiedStyles
109
- : futureStyles;
110
-
111
- const selectors = Object.keys( modifiedStyles );
112
-
113
- futureStyles = mergeStyles(
114
- futureStyles,
115
- updatedStyles,
116
- selectors
117
- );
118
- }
119
-
120
- mergeFutureStyles( activeStyles, [ isActive ] );
121
- mergeFutureStyles( darkStyles, [ isDark ] );
122
- mergeFutureStyles( activeDarkStyles, [ isActive, isDark ] );
123
-
124
- setCurrentStyles( futureStyles );
125
- // See https://github.com/WordPress/gutenberg/pull/41166
126
- }, [ isActive, isDark ] );
127
-
128
- const clearInput = useCallback( () => {
129
- onChange( '' );
130
- }, [ onChange ] );
131
-
132
- const onPress = useCallback( () => {
133
- setIsActive( true );
134
- inputRef.current?.focus();
135
- }, [] );
136
-
137
- const onFocus = useCallback( () => {
138
- setIsActive( true );
139
- }, [] );
140
-
141
- const onCancel = useCallback( () => {
142
- clearTimeout( onCancelTimer.current );
143
- onCancelTimer.current = setTimeout( () => {
144
- inputRef.current?.blur();
145
- clearInput();
146
- setIsActive( false );
147
- }, 0 );
148
- }, [ clearInput ] );
149
-
150
- const onKeyboardDidHide = useCallback( () => {
151
- if ( ! isIOS ) {
152
- onCancel();
153
- }
154
- }, [ isIOS, onCancel ] );
155
-
156
- useEffect( () => {
157
- const keyboardHideSubscription = Keyboard.addListener(
158
- 'keyboardDidHide',
159
- onKeyboardDidHide
160
- );
161
- return () => {
162
- clearTimeout( onCancelTimer.current );
163
- keyboardHideSubscription.remove();
164
- };
165
- }, [ onKeyboardDidHide ] );
166
-
167
- const {
168
- 'search-control__container': containerStyle,
169
- 'search-control__inner-container': innerContainerStyle,
170
- 'search-control__input-container': inputContainerStyle,
171
- 'search-control__form-input': formInputStyle,
172
- 'search-control__form-input-placeholder': placeholderStyle,
173
- 'search-control__input-button': inputButtonStyle,
174
- 'search-control__input-button-left': inputButtonLeftStyle,
175
- 'search-control__input-button-right': inputButtonRightStyle,
176
- 'search-control__cancel-button': cancelButtonStyle,
177
- 'search-control__cancel-button-text': cancelButtonTextStyle,
178
- 'search-control__icon': iconStyle,
179
- 'search-control__right-icon': rightIconStyle,
180
- } = currentStyles;
181
-
182
- function renderLeftButton() {
183
- const button =
184
- ! isIOS && isActive ? (
185
- <Button
186
- label={ __( 'Cancel search' ) }
187
- icon={ arrowLeftIcon }
188
- onClick={ onCancel }
189
- style={ iconStyle }
190
- />
191
- ) : (
192
- <Icon icon={ Gridicons.search } fill={ iconStyle?.color } />
193
- );
194
-
195
- return (
196
- <View style={ [ inputButtonStyle, inputButtonLeftStyle ] }>
197
- { button }
198
- </View>
199
- );
200
- }
201
-
202
- function renderRightButton() {
203
- let button;
204
-
205
- // Add a View element to properly center the input placeholder via flexbox.
206
- if ( isIOS && ! isActive ) {
207
- button = <View />;
208
- }
209
-
210
- if ( !! value ) {
211
- button = (
212
- <Button
213
- label={ __( 'Clear search' ) }
214
- icon={ isIOS ? cancelCircleFilledIcon : closeIcon }
215
- onClick={ clearInput }
216
- style={ [ iconStyle, rightIconStyle ] }
217
- />
218
- );
219
- }
220
-
221
- return (
222
- <View style={ [ inputButtonStyle, inputButtonRightStyle ] }>
223
- { button }
224
- </View>
225
- );
226
- }
227
-
228
- function renderCancel() {
229
- if ( ! isIOS ) {
230
- return null;
231
- }
232
- return (
233
- <View style={ cancelButtonStyle }>
234
- <Text
235
- onPress={ onCancel }
236
- style={ cancelButtonTextStyle }
237
- accessible
238
- accessibilityRole="button"
239
- accessibilityLabel={ __( 'Cancel search' ) }
240
- accessibilityHint={ __( 'Cancel search' ) }
241
- >
242
- { __( 'Cancel' ) }
243
- </Text>
244
- </View>
245
- );
246
- }
247
-
248
- return (
249
- <TouchableOpacity
250
- style={ containerStyle }
251
- onPress={ onPress }
252
- activeOpacity={ 1 }
253
- >
254
- <View style={ innerContainerStyle }>
255
- <View style={ inputContainerStyle }>
256
- { renderLeftButton() }
257
- <TextInput
258
- ref={ inputRef }
259
- style={ formInputStyle }
260
- placeholderTextColor={ placeholderStyle?.color }
261
- onChangeText={ onChange }
262
- onFocus={ onFocus }
263
- value={ value }
264
- placeholder={ placeholder }
265
- />
266
- { renderRightButton() }
267
- </View>
268
- { isActive && renderCancel() }
269
- </View>
270
- </TouchableOpacity>
271
- );
272
- }
273
-
274
- export default SearchControl;