@wordpress/components 34.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 (514) hide show
  1. package/CHANGELOG.md +25 -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/border-control/border-control-dropdown/component.cjs +33 -33
  7. package/build/border-control/border-control-dropdown/component.cjs.map +3 -3
  8. package/build/color-palette/index.cjs +3 -0
  9. package/build/color-palette/index.cjs.map +2 -2
  10. package/build/custom-gradient-picker/gradient-bar/index.cjs.map +2 -2
  11. package/build/disabled/index.cjs +1 -1
  12. package/build/disabled/index.cjs.map +2 -2
  13. package/build/draggable/index.cjs +1 -1
  14. package/build/draggable/index.cjs.map +2 -2
  15. package/build/higher-order/with-notices/index.cjs +15 -3
  16. package/build/higher-order/with-notices/index.cjs.map +2 -2
  17. package/build/input-control/input-base.cjs +34 -31
  18. package/build/input-control/input-base.cjs.map +2 -2
  19. package/build/navigable-container/container.cjs +15 -21
  20. package/build/navigable-container/container.cjs.map +2 -2
  21. package/build/responsive-wrapper/index.cjs +3 -4
  22. package/build/responsive-wrapper/index.cjs.map +2 -2
  23. package/build/tooltip/index.cjs +1 -2
  24. package/build/tooltip/index.cjs.map +2 -2
  25. package/build/unit-control/utils.cjs +33 -35
  26. package/build/unit-control/utils.cjs.map +2 -2
  27. package/build-module/alignment-matrix-control/cell.mjs +1 -1
  28. package/build-module/alignment-matrix-control/cell.mjs.map +2 -2
  29. package/build-module/alignment-matrix-control/index.mjs +1 -1
  30. package/build-module/alignment-matrix-control/index.mjs.map +2 -2
  31. package/build-module/border-control/border-control-dropdown/component.mjs +34 -34
  32. package/build-module/border-control/border-control-dropdown/component.mjs.map +2 -2
  33. package/build-module/color-palette/index.mjs +3 -0
  34. package/build-module/color-palette/index.mjs.map +2 -2
  35. package/build-module/custom-gradient-picker/gradient-bar/index.mjs.map +2 -2
  36. package/build-module/disabled/index.mjs +1 -1
  37. package/build-module/disabled/index.mjs.map +2 -2
  38. package/build-module/draggable/index.mjs +1 -1
  39. package/build-module/draggable/index.mjs.map +2 -2
  40. package/build-module/higher-order/with-notices/index.mjs +16 -4
  41. package/build-module/higher-order/with-notices/index.mjs.map +2 -2
  42. package/build-module/input-control/input-base.mjs +34 -31
  43. package/build-module/input-control/input-base.mjs.map +2 -2
  44. package/build-module/navigable-container/container.mjs +16 -22
  45. package/build-module/navigable-container/container.mjs.map +2 -2
  46. package/build-module/responsive-wrapper/index.mjs +3 -4
  47. package/build-module/responsive-wrapper/index.mjs.map +2 -2
  48. package/build-module/tooltip/index.mjs +1 -2
  49. package/build-module/tooltip/index.mjs.map +2 -2
  50. package/build-module/unit-control/utils.mjs +33 -35
  51. package/build-module/unit-control/utils.mjs.map +2 -2
  52. package/build-style/style-rtl.css +41 -10
  53. package/build-style/style.css +41 -10
  54. package/build-types/border-box-control/border-box-control/hook.d.ts +10 -24
  55. package/build-types/border-box-control/border-box-control/hook.d.ts.map +1 -1
  56. package/build-types/border-box-control/border-box-control-linked-button/hook.d.ts +12 -26
  57. package/build-types/border-box-control/border-box-control-linked-button/hook.d.ts.map +1 -1
  58. package/build-types/border-box-control/border-box-control-split-controls/hook.d.ts +10 -24
  59. package/build-types/border-box-control/border-box-control-split-controls/hook.d.ts.map +1 -1
  60. package/build-types/border-box-control/border-box-control-visualizer/hook.d.ts +11 -25
  61. package/build-types/border-box-control/border-box-control-visualizer/hook.d.ts.map +1 -1
  62. package/build-types/border-control/border-control/hook.d.ts +10 -24
  63. package/build-types/border-control/border-control/hook.d.ts.map +1 -1
  64. package/build-types/border-control/border-control-dropdown/component.d.ts.map +1 -1
  65. package/build-types/border-control/border-control-dropdown/hook.d.ts +9 -23
  66. package/build-types/border-control/border-control-dropdown/hook.d.ts.map +1 -1
  67. package/build-types/box-control/styles/box-control-styles.d.ts +2 -2
  68. package/build-types/card/card/hook.d.ts +11 -25
  69. package/build-types/card/card/hook.d.ts.map +1 -1
  70. package/build-types/card/card-body/hook.d.ts +11 -25
  71. package/build-types/card/card-body/hook.d.ts.map +1 -1
  72. package/build-types/card/card-divider/hook.d.ts +12 -26
  73. package/build-types/card/card-divider/hook.d.ts.map +1 -1
  74. package/build-types/card/card-footer/hook.d.ts +11 -25
  75. package/build-types/card/card-footer/hook.d.ts.map +1 -1
  76. package/build-types/card/card-header/hook.d.ts +11 -25
  77. package/build-types/card/card-header/hook.d.ts.map +1 -1
  78. package/build-types/card/card-media/hook.d.ts +11 -25
  79. package/build-types/card/card-media/hook.d.ts.map +1 -1
  80. package/build-types/card/context.d.ts +3 -0
  81. package/build-types/card/context.d.ts.map +1 -0
  82. package/build-types/color-palette/index.d.ts.map +1 -1
  83. package/build-types/color-picker/styles.d.ts +2 -2
  84. package/build-types/composite/stories/index.story.d.ts.map +1 -1
  85. package/build-types/custom-gradient-picker/gradient-bar/index.d.ts.map +1 -1
  86. package/build-types/custom-select-control-v2/styles.d.ts +12 -4
  87. package/build-types/custom-select-control-v2/styles.d.ts.map +1 -1
  88. package/build-types/date-time/date/index.d.ts +23 -0
  89. package/build-types/date-time/date/index.d.ts.map +1 -0
  90. package/build-types/date-time/date/styles.d.ts +45 -0
  91. package/build-types/date-time/date/styles.d.ts.map +1 -0
  92. package/build-types/date-time/date/test/index.d.ts +2 -0
  93. package/build-types/date-time/date/test/index.d.ts.map +1 -0
  94. package/build-types/date-time/date/test/use-lilius.d.ts +2 -0
  95. package/build-types/date-time/date/test/use-lilius.d.ts.map +1 -0
  96. package/build-types/date-time/date/use-lilius/index.d.ts +169 -0
  97. package/build-types/date-time/date/use-lilius/index.d.ts.map +1 -0
  98. package/build-types/date-time/time/index.d.ts +27 -0
  99. package/build-types/date-time/time/index.d.ts.map +1 -0
  100. package/build-types/date-time/time/styles.d.ts +93 -0
  101. package/build-types/date-time/time/styles.d.ts.map +1 -0
  102. package/build-types/date-time/time/test/index.d.ts +2 -0
  103. package/build-types/date-time/time/test/index.d.ts.map +1 -0
  104. package/build-types/date-time/time/time-input/index.d.ts +4 -0
  105. package/build-types/date-time/time/time-input/index.d.ts.map +1 -0
  106. package/build-types/date-time/time/time-input/test/index.d.ts +2 -0
  107. package/build-types/date-time/time/time-input/test/index.d.ts.map +1 -0
  108. package/build-types/date-time/time/timezone.d.ts +7 -0
  109. package/build-types/date-time/time/timezone.d.ts.map +1 -0
  110. package/build-types/date-time/time-picker/styles.d.ts +4 -4
  111. package/build-types/elevation/hook.d.ts +11 -25
  112. package/build-types/elevation/hook.d.ts.map +1 -1
  113. package/build-types/flex/flex/hook.d.ts +11 -25
  114. package/build-types/flex/flex/hook.d.ts.map +1 -1
  115. package/build-types/flex/flex-block/hook.d.ts +11 -25
  116. package/build-types/flex/flex-block/hook.d.ts.map +1 -1
  117. package/build-types/flex/flex-item/hook.d.ts +11 -25
  118. package/build-types/flex/flex-item/hook.d.ts.map +1 -1
  119. package/build-types/focal-point-picker/styles/focal-point-picker-style.d.ts +1 -1
  120. package/build-types/grid/hook.d.ts +11 -25
  121. package/build-types/grid/hook.d.ts.map +1 -1
  122. package/build-types/h-stack/hook.d.ts +11 -25
  123. package/build-types/h-stack/hook.d.ts.map +1 -1
  124. package/build-types/heading/hook.d.ts +11 -25
  125. package/build-types/heading/hook.d.ts.map +1 -1
  126. package/build-types/higher-order/with-fallback-styles/index.d.ts +3 -1
  127. package/build-types/higher-order/with-filters/index.d.ts +6 -1
  128. package/build-types/higher-order/with-filters/index.d.ts.map +1 -1
  129. package/build-types/higher-order/with-notices/index.d.ts +4 -2
  130. package/build-types/higher-order/with-notices/index.d.ts.map +1 -1
  131. package/build-types/input-control/reducer/reducer.d.ts +1 -1
  132. package/build-types/item-group/item/hook.d.ts +11 -25
  133. package/build-types/item-group/item/hook.d.ts.map +1 -1
  134. package/build-types/item-group/item-group/hook.d.ts +11 -25
  135. package/build-types/item-group/item-group/hook.d.ts.map +1 -1
  136. package/build-types/menu/stories/index.story.d.ts.map +1 -1
  137. package/build-types/menu/styles.d.ts +21 -7
  138. package/build-types/menu/styles.d.ts.map +1 -1
  139. package/build-types/modal/use-modal-exit-animation.d.ts +1 -1
  140. package/build-types/navigable-container/container.d.ts.map +1 -1
  141. package/build-types/navigation/back-button/index.d.ts +7 -0
  142. package/build-types/navigation/back-button/index.d.ts.map +1 -0
  143. package/build-types/navigation/constants.d.ts +3 -0
  144. package/build-types/navigation/constants.d.ts.map +1 -0
  145. package/build-types/navigation/context.d.ts +4 -0
  146. package/build-types/navigation/context.d.ts.map +1 -0
  147. package/build-types/navigation/group/context.d.ts +7 -0
  148. package/build-types/navigation/group/context.d.ts.map +1 -0
  149. package/build-types/navigation/group/index.d.ts +7 -0
  150. package/build-types/navigation/group/index.d.ts.map +1 -0
  151. package/build-types/navigation/index.d.ts +46 -0
  152. package/build-types/navigation/index.d.ts.map +1 -0
  153. package/build-types/navigation/item/base-content.d.ts +3 -0
  154. package/build-types/navigation/item/base-content.d.ts.map +1 -0
  155. package/build-types/navigation/item/base.d.ts +3 -0
  156. package/build-types/navigation/item/base.d.ts.map +1 -0
  157. package/build-types/navigation/item/index.d.ts +7 -0
  158. package/build-types/navigation/item/index.d.ts.map +1 -0
  159. package/build-types/navigation/item/use-navigation-tree-item.d.ts +3 -0
  160. package/build-types/navigation/item/use-navigation-tree-item.d.ts.map +1 -0
  161. package/build-types/navigation/menu/context.d.ts +7 -0
  162. package/build-types/navigation/menu/context.d.ts.map +1 -0
  163. package/build-types/navigation/menu/index.d.ts +7 -0
  164. package/build-types/navigation/menu/index.d.ts.map +1 -0
  165. package/build-types/navigation/menu/menu-title-search.d.ts +3 -0
  166. package/build-types/navigation/menu/menu-title-search.d.ts.map +1 -0
  167. package/build-types/navigation/menu/menu-title.d.ts +3 -0
  168. package/build-types/navigation/menu/menu-title.d.ts.map +1 -0
  169. package/build-types/navigation/menu/search-no-results-found.d.ts +3 -0
  170. package/build-types/navigation/menu/search-no-results-found.d.ts.map +1 -0
  171. package/build-types/navigation/menu/use-navigation-tree-menu.d.ts +3 -0
  172. package/build-types/navigation/menu/use-navigation-tree-menu.d.ts.map +1 -0
  173. package/build-types/navigation/stories/index.story.d.ts +23 -0
  174. package/build-types/navigation/stories/index.story.d.ts.map +1 -0
  175. package/build-types/navigation/stories/utils/controlled-state.d.ts +7 -0
  176. package/build-types/navigation/stories/utils/controlled-state.d.ts.map +1 -0
  177. package/build-types/navigation/stories/utils/default.d.ts +10 -0
  178. package/build-types/navigation/stories/utils/default.d.ts.map +1 -0
  179. package/build-types/navigation/stories/utils/group.d.ts +10 -0
  180. package/build-types/navigation/stories/utils/group.d.ts.map +1 -0
  181. package/build-types/navigation/stories/utils/hide-if-empty.d.ts +10 -0
  182. package/build-types/navigation/stories/utils/hide-if-empty.d.ts.map +1 -0
  183. package/build-types/navigation/stories/utils/more-examples.d.ts +10 -0
  184. package/build-types/navigation/stories/utils/more-examples.d.ts.map +1 -0
  185. package/build-types/navigation/stories/utils/search.d.ts +10 -0
  186. package/build-types/navigation/stories/utils/search.d.ts.map +1 -0
  187. package/build-types/navigation/styles/navigation-styles.d.ts +55 -0
  188. package/build-types/navigation/styles/navigation-styles.d.ts.map +1 -0
  189. package/build-types/navigation/test/index.d.ts +2 -0
  190. package/build-types/navigation/test/index.d.ts.map +1 -0
  191. package/build-types/navigation/types.d.ts +266 -0
  192. package/build-types/navigation/types.d.ts.map +1 -0
  193. package/build-types/navigation/use-create-navigation-tree.d.ts +15 -0
  194. package/build-types/navigation/use-create-navigation-tree.d.ts.map +1 -0
  195. package/build-types/navigation/use-navigation-tree-nodes.d.ts +10 -0
  196. package/build-types/navigation/use-navigation-tree-nodes.d.ts.map +1 -0
  197. package/build-types/navigation/utils.d.ts +3 -0
  198. package/build-types/navigation/utils.d.ts.map +1 -0
  199. package/build-types/navigator/navigator-back-button/hook.d.ts +12 -26
  200. package/build-types/navigator/navigator-back-button/hook.d.ts.map +1 -1
  201. package/build-types/navigator/navigator-button/hook.d.ts +12 -26
  202. package/build-types/navigator/navigator-button/hook.d.ts.map +1 -1
  203. package/build-types/number-control/index.d.ts +1 -1
  204. package/build-types/number-control/index.d.ts.map +1 -1
  205. package/build-types/number-control/stories/index.story.d.ts +1 -1
  206. package/build-types/number-control/stories/index.story.d.ts.map +1 -1
  207. package/build-types/popover/types.d.ts +2 -2
  208. package/build-types/popover/types.d.ts.map +1 -1
  209. package/build-types/range-control/index.d.ts +1 -1
  210. package/build-types/range-control/styles/range-control-styles.d.ts +1 -1
  211. package/build-types/range-control/types.d.ts +1 -1
  212. package/build-types/range-control/types.d.ts.map +1 -1
  213. package/build-types/responsive-wrapper/index.d.ts.map +1 -1
  214. package/build-types/scrollable/hook.d.ts +11 -25
  215. package/build-types/scrollable/hook.d.ts.map +1 -1
  216. package/build-types/snackbar/index.d.ts +2 -2
  217. package/build-types/snackbar/types.d.ts +2 -2
  218. package/build-types/snackbar/types.d.ts.map +1 -1
  219. package/build-types/spacer/hook.d.ts +11 -25
  220. package/build-types/spacer/hook.d.ts.map +1 -1
  221. package/build-types/surface/hook.d.ts +11 -25
  222. package/build-types/surface/hook.d.ts.map +1 -1
  223. package/build-types/tabs/stories/index.story.d.ts.map +1 -1
  224. package/build-types/tabs/styles.d.ts +9 -3
  225. package/build-types/tabs/styles.d.ts.map +1 -1
  226. package/build-types/text/hook.d.ts +11 -25
  227. package/build-types/text/hook.d.ts.map +1 -1
  228. package/build-types/tools-panel/tools-panel/hook.d.ts +11 -25
  229. package/build-types/tools-panel/tools-panel/hook.d.ts.map +1 -1
  230. package/build-types/tools-panel/tools-panel-header/hook.d.ts +11 -25
  231. package/build-types/tools-panel/tools-panel-header/hook.d.ts.map +1 -1
  232. package/build-types/tools-panel/tools-panel-item/hook.d.ts +11 -25
  233. package/build-types/tools-panel/tools-panel-item/hook.d.ts.map +1 -1
  234. package/build-types/tooltip/index.d.ts.map +1 -1
  235. package/build-types/truncate/hook.d.ts +11 -25
  236. package/build-types/truncate/hook.d.ts.map +1 -1
  237. package/build-types/unit-control/index.d.ts +1 -1
  238. package/build-types/unit-control/index.d.ts.map +1 -1
  239. package/build-types/unit-control/styles/unit-control-styles.d.ts +1 -1
  240. package/build-types/unit-control/utils.d.ts.map +1 -1
  241. package/build-types/utils/get-node-text.d.ts.map +1 -1
  242. package/build-types/v-stack/hook.d.ts +11 -25
  243. package/build-types/v-stack/hook.d.ts.map +1 -1
  244. package/build-types/validated-form-controls/components/combobox-control.d.ts +2 -2
  245. package/build-types/validated-form-controls/components/number-control.d.ts +1 -1
  246. package/build-types/validated-form-controls/components/number-control.d.ts.map +1 -1
  247. package/build-types/validated-form-controls/components/range-control.d.ts +1 -1
  248. package/build-types/validated-form-controls/control-with-error.d.ts +1 -4
  249. package/build-types/validated-form-controls/control-with-error.d.ts.map +1 -1
  250. package/build-types/visually-hidden/test/index.d.ts +2 -0
  251. package/build-types/visually-hidden/test/index.d.ts.map +1 -0
  252. package/package.json +37 -35
  253. package/src/autocomplete/README.md +1 -1
  254. package/src/border-control/border-control-dropdown/component.tsx +37 -36
  255. package/src/card/card/README.md +4 -4
  256. package/src/checkbox-control/README.md +1 -1
  257. package/src/clipboard-button/README.md +4 -4
  258. package/src/color-palette/index.tsx +5 -0
  259. package/src/color-palette/test/index.tsx +30 -0
  260. package/src/combobox-control/README.md +1 -1
  261. package/src/composite/stories/index.story.tsx +1 -0
  262. package/src/confirm-dialog/README.md +1 -1
  263. package/src/custom-gradient-picker/gradient-bar/index.tsx +1 -1
  264. package/src/disabled/index.tsx +1 -1
  265. package/src/flex/flex/README.md +1 -1
  266. package/src/form-file-upload/README.md +1 -1
  267. package/src/h-stack/hook.tsx +1 -1
  268. package/src/higher-order/with-notices/index.tsx +21 -4
  269. package/src/higher-order/with-notices/test/index.tsx +18 -0
  270. package/src/input-control/input-base.tsx +2 -2
  271. package/src/menu/README.md +7 -7
  272. package/src/menu/stories/index.story.tsx +1 -0
  273. package/src/navigable-container/container.tsx +22 -30
  274. package/src/popover/README.md +1 -1
  275. package/src/popover/index.tsx +1 -1
  276. package/src/popover/types.ts +4 -2
  277. package/src/range-control/types.ts +1 -1
  278. package/src/responsive-wrapper/index.tsx +3 -7
  279. package/src/scrollable/README.md +1 -1
  280. package/src/snackbar/README.md +1 -1
  281. package/src/snackbar/types.ts +2 -2
  282. package/src/tabs/README.md +1 -1
  283. package/src/tabs/stories/index.story.tsx +1 -0
  284. package/src/tabs/tablist.tsx +1 -1
  285. package/src/tooltip/index.tsx +1 -7
  286. package/src/tooltip/style.scss +1 -1
  287. package/src/tree-grid/test/cell.tsx +1 -0
  288. package/src/tree-grid/test/roving-tab-index-item.tsx +1 -0
  289. package/src/tree-select/README.md +1 -1
  290. package/src/unit-control/utils.ts +33 -52
  291. package/src/utils/get-node-text.ts +1 -7
  292. package/src/validated-form-controls/control-with-error.tsx +1 -6
  293. package/build/mobile/image/constants.cjs +0 -34
  294. package/build/mobile/image/constants.cjs.map +0 -7
  295. package/build-module/mobile/image/constants.mjs +0 -9
  296. package/build-module/mobile/image/constants.mjs.map +0 -7
  297. package/src/autocomplete/autocompleter-ui.native.js +0 -211
  298. package/src/autocomplete/background-view.android.js +0 -25
  299. package/src/autocomplete/background-view.ios.js +0 -23
  300. package/src/autocomplete/style.android.scss +0 -7
  301. package/src/autocomplete/style.native.scss +0 -74
  302. package/src/base-control/index.native.js +0 -14
  303. package/src/button/index.native.js +0 -236
  304. package/src/button/style.native.scss +0 -9
  305. package/src/color-control/index.native.js +0 -24
  306. package/src/color-indicator/index.native.js +0 -80
  307. package/src/color-indicator/style.native.scss +0 -51
  308. package/src/color-palette/index.native.js +0 -360
  309. package/src/color-palette/style.native.scss +0 -49
  310. package/src/color-picker/hsv-color-picker.native.js +0 -88
  311. package/src/color-picker/hue-picker.native.js +0 -198
  312. package/src/color-picker/index.native.js +0 -215
  313. package/src/color-picker/saturation-picker.native.js +0 -167
  314. package/src/color-picker/style.native.scss +0 -87
  315. package/src/custom-gradient-picker/index.native.js +0 -110
  316. package/src/custom-gradient-picker/style.native.scss +0 -3
  317. package/src/dashicon/index.native.js +0 -18
  318. package/src/disabled/index.native.js +0 -10
  319. package/src/draggable/index.native.js +0 -234
  320. package/src/draggable/style.native.scss +0 -3
  321. package/src/draggable/test/index.native.js +0 -138
  322. package/src/dropdown/index.native.js +0 -59
  323. package/src/dropdown-menu/index.native.js +0 -152
  324. package/src/external-link/index.native.js +0 -25
  325. package/src/focal-point-picker/focal-point.native.js +0 -30
  326. package/src/focal-point-picker/index.native.js +0 -281
  327. package/src/focal-point-picker/tooltip/index.native.js +0 -144
  328. package/src/focal-point-picker/tooltip/style.native.scss +0 -42
  329. package/src/font-size-picker/index.native.js +0 -190
  330. package/src/font-size-picker/style.native.scss +0 -6
  331. package/src/footer-message-control/index.native.js +0 -14
  332. package/src/higher-order/with-focus-outside/index.native.js +0 -38
  333. package/src/index.native.js +0 -134
  334. package/src/keyboard-shortcuts/index.native.js +0 -2
  335. package/src/mobile/README.md +0 -3
  336. package/src/mobile/autocompletion-items.native.js +0 -11
  337. package/src/mobile/badge/README.md +0 -31
  338. package/src/mobile/badge/index.native.js +0 -27
  339. package/src/mobile/badge/style.scss +0 -18
  340. package/src/mobile/bottom-sheet/borderStyles.android.scss +0 -8
  341. package/src/mobile/bottom-sheet/borderStyles.ios.scss +0 -9
  342. package/src/mobile/bottom-sheet/bottom-sheet-context.native.js +0 -40
  343. package/src/mobile/bottom-sheet/bottom-sheet-navigation/README.md +0 -101
  344. package/src/mobile/bottom-sheet/bottom-sheet-navigation/bottom-sheet-navigation-context.native.js +0 -16
  345. package/src/mobile/bottom-sheet/bottom-sheet-navigation/navigation-container.native.js +0 -193
  346. package/src/mobile/bottom-sheet/bottom-sheet-navigation/navigation-screen.native.js +0 -146
  347. package/src/mobile/bottom-sheet/bottom-sheet-navigation/styles.native.scss +0 -11
  348. package/src/mobile/bottom-sheet/bottom-sheet-navigation/test/navigation-container.native.js +0 -197
  349. package/src/mobile/bottom-sheet/button.native.js +0 -19
  350. package/src/mobile/bottom-sheet/cell.native.js +0 -464
  351. package/src/mobile/bottom-sheet/cellStyles.android.scss +0 -15
  352. package/src/mobile/bottom-sheet/cellStyles.ios.scss +0 -19
  353. package/src/mobile/bottom-sheet/chevron-back.native.js +0 -18
  354. package/src/mobile/bottom-sheet/color-cell.native.js +0 -35
  355. package/src/mobile/bottom-sheet/cycle-picker-cell.native.js +0 -31
  356. package/src/mobile/bottom-sheet/footer-message-cell.native.js +0 -23
  357. package/src/mobile/bottom-sheet/footer-message-link/README.md +0 -37
  358. package/src/mobile/bottom-sheet/footer-message-link/footer-message-link.native.js +0 -26
  359. package/src/mobile/bottom-sheet/footer-message-link/styles.native.scss +0 -7
  360. package/src/mobile/bottom-sheet/index.native.js +0 -646
  361. package/src/mobile/bottom-sheet/keyboard-avoiding-view.native.js +0 -125
  362. package/src/mobile/bottom-sheet/link-cell.native.js +0 -35
  363. package/src/mobile/bottom-sheet/link-suggestion-item-cell.native.js +0 -92
  364. package/src/mobile/bottom-sheet/link-suggestion-styles.native.scss +0 -27
  365. package/src/mobile/bottom-sheet/lock-icon/index.native.js +0 -19
  366. package/src/mobile/bottom-sheet/lock-icon/styles.native.scss +0 -8
  367. package/src/mobile/bottom-sheet/nav-bar/README.md +0 -63
  368. package/src/mobile/bottom-sheet/nav-bar/action-button.native.js +0 -30
  369. package/src/mobile/bottom-sheet/nav-bar/apply-button.native.js +0 -53
  370. package/src/mobile/bottom-sheet/nav-bar/back-button.native.js +0 -94
  371. package/src/mobile/bottom-sheet/nav-bar/heading.native.js +0 -33
  372. package/src/mobile/bottom-sheet/nav-bar/index.native.js +0 -23
  373. package/src/mobile/bottom-sheet/nav-bar/styles.native.scss +0 -69
  374. package/src/mobile/bottom-sheet/picker-cell.native.js +0 -40
  375. package/src/mobile/bottom-sheet/radio-cell.native.js +0 -39
  376. package/src/mobile/bottom-sheet/range-cell.native.js +0 -274
  377. package/src/mobile/bottom-sheet/range-cell.native.scss +0 -40
  378. package/src/mobile/bottom-sheet/range-text-input.native.js +0 -248
  379. package/src/mobile/bottom-sheet/ripple.native.js +0 -83
  380. package/src/mobile/bottom-sheet/ripple.native.scss +0 -11
  381. package/src/mobile/bottom-sheet/stepper-cell/index.native.js +0 -264
  382. package/src/mobile/bottom-sheet/stepper-cell/stepper.android.js +0 -78
  383. package/src/mobile/bottom-sheet/stepper-cell/stepper.ios.js +0 -64
  384. package/src/mobile/bottom-sheet/stepper-cell/style.native.scss +0 -89
  385. package/src/mobile/bottom-sheet/styles.native.scss +0 -333
  386. package/src/mobile/bottom-sheet/sub-sheet/README.md +0 -90
  387. package/src/mobile/bottom-sheet/sub-sheet/index.native.js +0 -49
  388. package/src/mobile/bottom-sheet/switch-cell.native.js +0 -75
  389. package/src/mobile/bottom-sheet/test/index.native.js +0 -24
  390. package/src/mobile/bottom-sheet/test/range-cell.native.js +0 -73
  391. package/src/mobile/bottom-sheet-select-control/README.md +0 -97
  392. package/src/mobile/bottom-sheet-select-control/index.native.js +0 -124
  393. package/src/mobile/bottom-sheet-select-control/style.native.scss +0 -3
  394. package/src/mobile/bottom-sheet-text-control/README.md +0 -98
  395. package/src/mobile/bottom-sheet-text-control/index.native.js +0 -104
  396. package/src/mobile/bottom-sheet-text-control/styles.scss +0 -25
  397. package/src/mobile/clipboard/index.native.js +0 -18
  398. package/src/mobile/color-settings/gradient-picker-screen.native.js +0 -37
  399. package/src/mobile/color-settings/index.native.js +0 -88
  400. package/src/mobile/color-settings/palette.screen.native.js +0 -232
  401. package/src/mobile/color-settings/picker-screen.native.js +0 -60
  402. package/src/mobile/color-settings/style.native.scss +0 -62
  403. package/src/mobile/color-settings/utils.native.js +0 -36
  404. package/src/mobile/cycle-select-control/README.md +0 -3
  405. package/src/mobile/cycle-select-control/index.native.js +0 -39
  406. package/src/mobile/dashicons/index.native.js +0 -22
  407. package/src/mobile/focal-point-settings-panel/index.native.js +0 -84
  408. package/src/mobile/focal-point-settings-panel/styles.native.scss +0 -3
  409. package/src/mobile/gradient/index.native.js +0 -188
  410. package/src/mobile/gradient/style.native.scss +0 -8
  411. package/src/mobile/gradient/test/index.native.js +0 -114
  412. package/src/mobile/gridicons/index.native.js +0 -39
  413. package/src/mobile/html-text-input/index.native.js +0 -169
  414. package/src/mobile/html-text-input/style.android.scss +0 -8
  415. package/src/mobile/html-text-input/style.ios.scss +0 -10
  416. package/src/mobile/html-text-input/style.scss +0 -45
  417. package/src/mobile/html-text-input/test/__snapshots__/index.native.js.snap +0 -48
  418. package/src/mobile/html-text-input/test/index.native.js +0 -118
  419. package/src/mobile/image/constants.js +0 -1
  420. package/src/mobile/image/icon-customize.native.js +0 -10
  421. package/src/mobile/image/icon-retry.native.js +0 -11
  422. package/src/mobile/image/image-editing-button.native.js +0 -63
  423. package/src/mobile/image/index.native.js +0 -401
  424. package/src/mobile/image/style.native.scss +0 -179
  425. package/src/mobile/image/utils/index.native.js +0 -58
  426. package/src/mobile/keyboard-avoiding-view/index.android.js +0 -8
  427. package/src/mobile/keyboard-avoiding-view/index.ios.js +0 -143
  428. package/src/mobile/keyboard-avoiding-view/styles.native.scss +0 -9
  429. package/src/mobile/keyboard-aware-flat-list/index.android.js +0 -81
  430. package/src/mobile/keyboard-aware-flat-list/index.ios.js +0 -147
  431. package/src/mobile/keyboard-aware-flat-list/shared.native.js +0 -26
  432. package/src/mobile/keyboard-aware-flat-list/styles.native.scss +0 -8
  433. package/src/mobile/keyboard-aware-flat-list/test/use-keyboard-offset.native.js +0 -203
  434. package/src/mobile/keyboard-aware-flat-list/test/use-scroll-to-section.native.js +0 -142
  435. package/src/mobile/keyboard-aware-flat-list/test/use-scroll.native.js +0 -71
  436. package/src/mobile/keyboard-aware-flat-list/test/use-text-input-caret-position.native.js +0 -82
  437. package/src/mobile/keyboard-aware-flat-list/test/use-text-input-offset.native.js +0 -147
  438. package/src/mobile/keyboard-aware-flat-list/use-keyboard-offset.native.js +0 -87
  439. package/src/mobile/keyboard-aware-flat-list/use-scroll-to-element.native.js +0 -41
  440. package/src/mobile/keyboard-aware-flat-list/use-scroll-to-section.native.js +0 -100
  441. package/src/mobile/keyboard-aware-flat-list/use-scroll.native.js +0 -100
  442. package/src/mobile/keyboard-aware-flat-list/use-text-input-caret-position.native.js +0 -36
  443. package/src/mobile/keyboard-aware-flat-list/use-text-input-offset.native.js +0 -54
  444. package/src/mobile/layout-animation/index.native.js +0 -16
  445. package/src/mobile/link-picker/index.native.js +0 -160
  446. package/src/mobile/link-picker/link-picker-results.native.js +0 -129
  447. package/src/mobile/link-picker/link-picker-screen.native.js +0 -60
  448. package/src/mobile/link-picker/styles.native.scss +0 -45
  449. package/src/mobile/link-picker/test/performance/index.native.js +0 -35
  450. package/src/mobile/link-settings/index.native.js +0 -332
  451. package/src/mobile/link-settings/link-rel.native.js +0 -10
  452. package/src/mobile/link-settings/link-settings-navigation.native.js +0 -50
  453. package/src/mobile/link-settings/link-settings-screen.native.js +0 -44
  454. package/src/mobile/link-settings/style.native.scss +0 -4
  455. package/src/mobile/link-settings/test/edit.native.js +0 -325
  456. package/src/mobile/link-settings/test/link-settings-navigation.native.js +0 -94
  457. package/src/mobile/media-edit/index.native.js +0 -125
  458. package/src/mobile/picker/index.android.js +0 -104
  459. package/src/mobile/picker/index.ios.js +0 -96
  460. package/src/mobile/picker/styles.native.scss +0 -29
  461. package/src/mobile/segmented-control/index.native.js +0 -186
  462. package/src/mobile/segmented-control/style.native.scss +0 -99
  463. package/src/mobile/utils/alignments.native.js +0 -78
  464. package/src/mobile/utils/get-px-from-css-unit.native.js +0 -329
  465. package/src/mobile/utils/index.native.js +0 -12
  466. package/src/mobile/utils/test/get-px-from-css-unit.native.js +0 -172
  467. package/src/mobile/utils/test/index.native.js +0 -134
  468. package/src/mobile/utils/use-is-floating-keyboard.native.js +0 -31
  469. package/src/mobile/utils/use-unit-converter-to-mobile.native.js +0 -90
  470. package/src/notice/index.native.js +0 -123
  471. package/src/notice/list.native.js +0 -55
  472. package/src/notice/style.native.scss +0 -60
  473. package/src/panel/actions.native.js +0 -46
  474. package/src/panel/actions.native.scss +0 -12
  475. package/src/panel/body.native.js +0 -29
  476. package/src/panel/body.native.scss +0 -11
  477. package/src/panel/bottom-separator-cover.native.js +0 -27
  478. package/src/panel/bottom-separator-cover.native.scss +0 -9
  479. package/src/private-apis.native.js +0 -13
  480. package/src/query-controls/index.native.js +0 -103
  481. package/src/radio-control/index.native.js +0 -24
  482. package/src/range-control/index.native.js +0 -73
  483. package/src/resizable-box/index.native.js +0 -32
  484. package/src/resizable-box/style.native.scss +0 -14
  485. package/src/sandbox/index.native.js +0 -392
  486. package/src/sandbox/style.native.scss +0 -7
  487. package/src/search-control/index.native.js +0 -274
  488. package/src/search-control/platform-style.android.scss +0 -57
  489. package/src/search-control/platform-style.ios.scss +0 -43
  490. package/src/search-control/style.native.scss +0 -63
  491. package/src/select-control/index.native.js +0 -41
  492. package/src/slot-fill/index.native.js +0 -25
  493. package/src/spinner/index.native.js +0 -22
  494. package/src/spinner/style.native.scss +0 -4
  495. package/src/style-provider/index.native.js +0 -3
  496. package/src/text/index.native.js +0 -13
  497. package/src/text/styles/emotion-css.native.js +0 -6
  498. package/src/text/styles/font-family.native.js +0 -1
  499. package/src/text/styles/text-mixins.native.js +0 -163
  500. package/src/text-control/index.native.js +0 -41
  501. package/src/textarea-control/index.native.js +0 -26
  502. package/src/toggle-control/index.native.js +0 -31
  503. package/src/toolbar/toolbar/style.native.scss +0 -11
  504. package/src/toolbar/toolbar/toolbar-container.native.js +0 -8
  505. package/src/toolbar/toolbar-button/toolbar-button-container.native.js +0 -8
  506. package/src/toolbar/toolbar-group/style.native.scss +0 -10
  507. package/src/toolbar/toolbar-group/toolbar-group-collapsed.native.js +0 -36
  508. package/src/toolbar/toolbar-group/toolbar-group-container.native.js +0 -26
  509. package/src/toolbar/toolbar-item/index.native.js +0 -17
  510. package/src/tooltip/index.native.js +0 -292
  511. package/src/tooltip/style.native.scss +0 -39
  512. package/src/tooltip/test/index.native.js +0 -98
  513. package/src/unit-control/index.native.js +0 -202
  514. 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;