@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,87 +0,0 @@
1
- /**
2
- * External dependencies
3
- */
4
-
5
- import { Keyboard } from 'react-native';
6
-
7
- /**
8
- * WordPress dependencies
9
- */
10
- import { useEffect, useCallback, useState, useRef } from '@wordpress/element';
11
-
12
- /**
13
- * Hook that adds Keyboard listeners to get the offset space
14
- * when the keyboard is opened, taking into account focused AztecViews.
15
- *
16
- * @param {boolean} scrollEnabled Whether the scroll is enabled or not.
17
- * @param {Function} shouldPreventAutomaticScroll Whether to prevent scrolling when there's a Keyboard offset set.
18
- * @return {[number]} Keyboard offset.
19
- */
20
- export default function useKeyboardOffset(
21
- scrollEnabled,
22
- shouldPreventAutomaticScroll
23
- ) {
24
- const [ keyboardOffset, setKeyboardOffset ] = useState( 0 );
25
- const timeoutRef = useRef();
26
-
27
- const onKeyboardDidHide = useCallback( () => {
28
- if ( shouldPreventAutomaticScroll() ) {
29
- clearTimeout( timeoutRef.current );
30
- return;
31
- }
32
-
33
- // A timeout is being used to delay resetting the offset in cases
34
- // where the focus is changed to a different TextInput.
35
- clearTimeout( timeoutRef.current );
36
- timeoutRef.current = setTimeout( () => {
37
- setKeyboardOffset( 0 );
38
- }, 200 );
39
- }, [ shouldPreventAutomaticScroll ] );
40
-
41
- const onKeyboardDidShow = useCallback( ( { endCoordinates } ) => {
42
- clearTimeout( timeoutRef.current );
43
- setKeyboardOffset( endCoordinates.height );
44
- }, [] );
45
-
46
- const onKeyboardWillShow = useCallback( () => {
47
- clearTimeout( timeoutRef.current );
48
- }, [] );
49
-
50
- useEffect( () => {
51
- let willShowSubscription;
52
- let showSubscription;
53
- let hideSubscription;
54
-
55
- if ( scrollEnabled ) {
56
- willShowSubscription = Keyboard.addListener(
57
- 'keyboardWillShow',
58
- onKeyboardWillShow
59
- );
60
- showSubscription = Keyboard.addListener(
61
- 'keyboardDidShow',
62
- onKeyboardDidShow
63
- );
64
- hideSubscription = Keyboard.addListener(
65
- 'keyboardDidHide',
66
- onKeyboardDidHide
67
- );
68
- } else {
69
- willShowSubscription?.remove();
70
- showSubscription?.remove();
71
- hideSubscription?.remove();
72
- }
73
-
74
- return () => {
75
- clearTimeout( timeoutRef.current );
76
- willShowSubscription?.remove();
77
- showSubscription?.remove();
78
- hideSubscription?.remove();
79
- };
80
- }, [
81
- onKeyboardDidHide,
82
- onKeyboardDidShow,
83
- onKeyboardWillShow,
84
- scrollEnabled,
85
- ] );
86
- return [ keyboardOffset ];
87
- }
@@ -1,41 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import { useCallback } from '@wordpress/element';
5
-
6
- /** @typedef {import('@wordpress/element').RefObject} RefObject */
7
- /**
8
- * Hook to scroll to a specified element by taking into account the Keyboard
9
- * and the Header.
10
- *
11
- * @param {RefObject} scrollViewRef Scroll view reference.
12
- * @param {Function} scrollToSection Function to scroll.
13
- * @return {Function[]} Function to scroll to an element.
14
- */
15
- export default function useScrollToElement( scrollViewRef, scrollToSection ) {
16
- /**
17
- * Function to scroll to an element.
18
- *
19
- * @param {RefObject} elementRef Ref of the element.
20
- */
21
- const scrollToElement = useCallback(
22
- ( elementRef ) => {
23
- if ( ! scrollViewRef.current || ! elementRef ) {
24
- return;
25
- }
26
-
27
- elementRef.current.measureLayout(
28
- scrollViewRef.current,
29
- ( _x, y, _width, height ) => {
30
- if ( height || y ) {
31
- scrollToSection( Math.round( y ), height );
32
- }
33
- },
34
- () => {}
35
- );
36
- },
37
- [ scrollViewRef, scrollToSection ]
38
- );
39
-
40
- return [ scrollToElement ];
41
- }
@@ -1,100 +0,0 @@
1
- /**
2
- * External dependencies
3
- */
4
- import { useSafeAreaInsets } from 'react-native-safe-area-context';
5
-
6
- /**
7
- * WordPress dependencies
8
- */
9
- import { useCallback } from '@wordpress/element';
10
-
11
- /** @typedef {import('@wordpress/element').RefObject} RefObject */
12
- /** @typedef {import('react-native-reanimated').SharedValue} SharedValue */
13
- /**
14
- * Hook to scroll to a specified section by taking into account the Keyboard
15
- * and the Header.
16
- *
17
- * @param {number} extraScrollHeight Extra space to not overlap the content.
18
- * @param {number} keyboardOffset Keyboard space offset.
19
- * @param {boolean} scrollEnabled Whether the scroll is enabled or not.
20
- * @param {RefObject} scrollViewMeasurements ScrollView Layout measurements.
21
- * @param {RefObject} scrollViewRef Scroll view reference.
22
- * @param {SharedValue} scrollViewYOffset Current offset position of the ScrollView.
23
- * @return {Function[]} Function to scroll to a section.
24
- */
25
- export default function useScrollToSection(
26
- extraScrollHeight,
27
- keyboardOffset,
28
- scrollEnabled,
29
- scrollViewMeasurements,
30
- scrollViewRef,
31
- scrollViewYOffset
32
- ) {
33
- const { top, bottom } = useSafeAreaInsets();
34
- const insets = top + bottom;
35
-
36
- /**
37
- * Function to scroll to a section.
38
- *
39
- * @param {Object} section Section data to scroll to.
40
- * @param {number} section.y Y-coordinate of of the section.
41
- * @param {number} section.height Height of the section.
42
- */
43
- const scrollToSection = useCallback(
44
- ( sectionY, sectionHeight ) => {
45
- if (
46
- ! scrollViewRef.current ||
47
- ! scrollEnabled ||
48
- ! scrollViewMeasurements.current
49
- ) {
50
- return;
51
- }
52
-
53
- const currentScrollViewYOffset = Math.max(
54
- 0,
55
- scrollViewYOffset.value
56
- );
57
-
58
- // Scroll to the top of the section.
59
- if ( sectionY < currentScrollViewYOffset ) {
60
- scrollViewRef.current.scrollTo( {
61
- y: sectionY,
62
- animated: true,
63
- } );
64
- return;
65
- }
66
-
67
- const availableScreenSpace = Math.abs(
68
- Math.floor(
69
- scrollViewMeasurements.current.height -
70
- ( keyboardOffset + extraScrollHeight + sectionHeight )
71
- )
72
- );
73
- const maxOffset = Math.floor(
74
- currentScrollViewYOffset + availableScreenSpace
75
- );
76
-
77
- const isAtTheTop =
78
- sectionY < scrollViewMeasurements.current.y + insets;
79
-
80
- // Scroll to the bottom of the section.
81
- if ( sectionY > maxOffset && ! isAtTheTop ) {
82
- scrollViewRef.current.scrollTo( {
83
- y: sectionY - availableScreenSpace,
84
- animated: true,
85
- } );
86
- }
87
- },
88
- [
89
- extraScrollHeight,
90
- insets,
91
- keyboardOffset,
92
- scrollEnabled,
93
- scrollViewMeasurements,
94
- scrollViewRef,
95
- scrollViewYOffset,
96
- ]
97
- );
98
-
99
- return [ scrollToSection ];
100
- }
@@ -1,100 +0,0 @@
1
- /**
2
- * External dependencies
3
- */
4
-
5
- import { useWindowDimensions } from 'react-native';
6
- import {
7
- useAnimatedScrollHandler,
8
- useSharedValue,
9
- } from 'react-native-reanimated';
10
-
11
- /**
12
- * WordPress dependencies
13
- */
14
- import { useCallback, useEffect, useRef } from '@wordpress/element';
15
-
16
- /**
17
- * Internal dependencies
18
- */
19
- import useKeyboardOffset from './use-keyboard-offset';
20
- import useScrollToSection from './use-scroll-to-section';
21
- import useScrollToElement from './use-scroll-to-element';
22
-
23
- export default function useScroll( {
24
- scrollEnabled,
25
- shouldPreventAutomaticScroll,
26
- onScroll,
27
- onSizeChange,
28
- extraScrollHeight,
29
- } ) {
30
- const scrollViewRef = useRef();
31
- const scrollViewMeasurements = useRef();
32
- const scrollViewYOffset = useSharedValue( -1 );
33
- const lastScrollTo = useRef( {
34
- clientId: null,
35
- } );
36
-
37
- const { height: windowHeight, width: windowWidth } = useWindowDimensions();
38
- const isLandscape = windowWidth >= windowHeight;
39
-
40
- const [ keyboardOffset ] = useKeyboardOffset(
41
- scrollEnabled,
42
- shouldPreventAutomaticScroll
43
- );
44
-
45
- const scrollHandler = useAnimatedScrollHandler( {
46
- onScroll: ( event ) => {
47
- const { contentOffset } = event;
48
- scrollViewYOffset.value = contentOffset.y;
49
- onScroll( event );
50
- },
51
- } );
52
-
53
- // When the orientation changes, the ScrollView measurements
54
- // need to be re-calculated.
55
- useEffect( () => {
56
- scrollViewMeasurements.current = null;
57
- }, [ isLandscape ] );
58
-
59
- const [ scrollToSection ] = useScrollToSection(
60
- extraScrollHeight,
61
- keyboardOffset,
62
- scrollEnabled,
63
- scrollViewMeasurements,
64
- scrollViewRef,
65
- scrollViewYOffset
66
- );
67
- const [ scrollToElement ] = useScrollToElement(
68
- scrollViewRef,
69
- scrollToSection
70
- );
71
-
72
- const measureScrollView = useCallback( () => {
73
- if ( scrollViewRef.current ) {
74
- scrollViewRef.current.measureInWindow( ( _x, y, width, height ) => {
75
- scrollViewMeasurements.current = { y, width, height };
76
- } );
77
- }
78
- }, [ scrollViewRef ] );
79
-
80
- const onContentSizeChange = useCallback( () => {
81
- if ( onSizeChange ) {
82
- onSizeChange();
83
- }
84
-
85
- // Sets the first values when the content size changes.
86
- if ( ! scrollViewMeasurements.current ) {
87
- measureScrollView();
88
- }
89
- }, [ measureScrollView, onSizeChange ] );
90
-
91
- return {
92
- scrollViewRef,
93
- scrollHandler,
94
- keyboardOffset,
95
- scrollToSection,
96
- scrollToElement,
97
- onContentSizeChange,
98
- lastScrollTo,
99
- };
100
- }
@@ -1,36 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import RCTAztecView from '@wordpress/react-native-aztec';
5
- import { useCallback, useEffect, useState } from '@wordpress/element';
6
-
7
- /**
8
- * Hook that listens to caret changes from AztecView TextInputs.
9
- *
10
- * @param {boolean} scrollEnabled Whether the scroll is enabled or not.
11
- * @return {[number]} Current caret's data.
12
- */
13
- export default function useTextInputCaretPosition( scrollEnabled ) {
14
- const [ currentCaretData, setCurrentCaretData ] = useState();
15
-
16
- const onCaretChange = useCallback( ( caret ) => {
17
- setCurrentCaretData( caret );
18
- }, [] );
19
-
20
- useEffect( () => {
21
- if ( scrollEnabled ) {
22
- RCTAztecView.InputState.addCaretChangeListener( onCaretChange );
23
- } else {
24
- RCTAztecView.InputState.removeCaretChangeListener( onCaretChange );
25
- }
26
-
27
- return () => {
28
- if ( scrollEnabled ) {
29
- RCTAztecView.InputState.removeCaretChangeListener(
30
- onCaretChange
31
- );
32
- }
33
- };
34
- }, [ scrollEnabled, onCaretChange ] );
35
- return [ currentCaretData ];
36
- }
@@ -1,54 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import RCTAztecView from '@wordpress/react-native-aztec';
5
- import { useCallback } from '@wordpress/element';
6
-
7
- /** @typedef {import('@wordpress/element').RefObject} RefObject */
8
- /**
9
- * Hook that calculates the currently focused TextInput's current
10
- * caret Y coordinate position.
11
- *
12
- * @param {boolean} scrollEnabled Whether the scroll is enabled or not.
13
- * @param {RefObject} scrollViewRef ScrollView reference.
14
- * @return {[Function]} Function to get the current TextInput's offset.
15
- */
16
- export default function useTextInputOffset( scrollEnabled, scrollViewRef ) {
17
- const getTextInputOffset = useCallback(
18
- async ( caret ) => {
19
- const { caretY = null } = caret ?? {};
20
- const textInput =
21
- RCTAztecView.InputState.getCurrentFocusedElement();
22
-
23
- return new Promise( ( resolve ) => {
24
- if (
25
- scrollViewRef.current &&
26
- textInput &&
27
- scrollEnabled &&
28
- caretY !== null
29
- ) {
30
- textInput.measureLayout(
31
- scrollViewRef.current,
32
- ( _x, y, _width, height ) => {
33
- const caretYOffset =
34
- // For cases where the caretY value is -1
35
- // we use the y + height value, e.g the current
36
- // character index is not valid or out of bounds
37
- // see https://github.com/wordpress-mobile/AztecEditor-iOS/blob/4d0522d67b0056ac211466caaa76936cc5b4f947/Aztec/Classes/TextKit/TextView.swift#L762
38
- caretY >= 0 && caretY < height
39
- ? y + caretY
40
- : y + height;
41
- resolve( Math.round( Math.abs( caretYOffset ) ) );
42
- },
43
- () => resolve( null )
44
- );
45
- } else {
46
- resolve( null );
47
- }
48
- } );
49
- },
50
- [ scrollEnabled, scrollViewRef ]
51
- );
52
-
53
- return [ getTextInputOffset ];
54
- }
@@ -1,16 +0,0 @@
1
- /**
2
- * External dependencies
3
- */
4
- import { LayoutAnimation } from 'react-native';
5
-
6
- const ANIMATION_DURATION = 300;
7
-
8
- export function performLayoutAnimation( duration = ANIMATION_DURATION ) {
9
- LayoutAnimation.configureNext(
10
- LayoutAnimation.create(
11
- duration,
12
- LayoutAnimation.Types.easeInEaseOut,
13
- LayoutAnimation.Properties.opacity
14
- )
15
- );
16
- }
@@ -1,160 +0,0 @@
1
- /**
2
- * External dependencies
3
- */
4
- import { SafeAreaView, TouchableOpacity, View } from 'react-native';
5
- import Clipboard from '@react-native-clipboard/clipboard';
6
-
7
- /**
8
- * WordPress dependencies
9
- */
10
- import { useEffect, useState } from '@wordpress/element';
11
- import { __, sprintf } from '@wordpress/i18n';
12
- import { getProtocol, isURL, prependHTTP } from '@wordpress/url';
13
- import { link, cancelCircleFilled } from '@wordpress/icons';
14
- import { usePreferredColorSchemeStyle } from '@wordpress/compose';
15
-
16
- /**
17
- * Internal dependencies
18
- */
19
- import LinkPickerResults from './link-picker-results';
20
- import NavBar from '../bottom-sheet/nav-bar';
21
- import styles from './styles.scss';
22
- import BottomSheet from '../bottom-sheet';
23
- import Icon from '../../icon';
24
-
25
- // This creates a search suggestion for adding a url directly.
26
- export const createDirectEntry = ( value ) => {
27
- let type = 'URL';
28
-
29
- const protocol = getProtocol( value )?.toLowerCase() || '';
30
-
31
- if ( protocol.includes( 'mailto' ) ) {
32
- type = 'mailto';
33
- }
34
-
35
- if ( protocol.includes( 'tel' ) ) {
36
- type = 'tel';
37
- }
38
-
39
- if ( value?.startsWith( '#' ) ) {
40
- type = 'internal';
41
- }
42
-
43
- return {
44
- isDirectEntry: true,
45
- title: value,
46
- url: type === 'URL' ? prependHTTP( value ) : value,
47
- type,
48
- };
49
- };
50
-
51
- const getURLFromClipboard = async () => {
52
- const text = await Clipboard.getString();
53
- return !! text && isURL( text ) ? text : '';
54
- };
55
-
56
- export const LinkPicker = ( {
57
- value: initialValue,
58
- onLinkPicked,
59
- onCancel: cancel,
60
- } ) => {
61
- const [ value, setValue ] = useState( initialValue );
62
- const [ clipboardUrl, setClipboardUrl ] = useState( '' );
63
- const directEntry = createDirectEntry( value );
64
-
65
- // The title of a direct entry is displayed as the raw input value, but if we
66
- // are replacing empty text, we want to use the generated url.
67
- const pickLink = ( { title, url, isDirectEntry } ) => {
68
- onLinkPicked( { title: isDirectEntry ? url : title, url } );
69
- };
70
-
71
- const onSubmit = () => {
72
- pickLink( directEntry );
73
- };
74
-
75
- const clear = () => {
76
- setValue( '' );
77
- setClipboardUrl( '' );
78
- };
79
-
80
- const omniCellStyle = usePreferredColorSchemeStyle(
81
- styles.omniCell,
82
- styles.omniCellDark
83
- );
84
-
85
- const iconStyle = usePreferredColorSchemeStyle(
86
- styles.icon,
87
- styles.iconDark
88
- );
89
-
90
- useEffect( () => {
91
- getURLFromClipboard()
92
- .then( setClipboardUrl )
93
- .catch( () => setClipboardUrl( '' ) );
94
- }, [] );
95
-
96
- // TODO: Localize the accessibility label.
97
- // TODO: Decide on if `LinkSuggestionItemCell` with `isDirectEntry` makes sense.
98
- return (
99
- <SafeAreaView style={ styles.safeArea }>
100
- <NavBar>
101
- <NavBar.DismissButton onPress={ cancel } />
102
- <NavBar.Heading>{ __( 'Link to' ) }</NavBar.Heading>
103
- <NavBar.ApplyButton onPress={ onSubmit } />
104
- </NavBar>
105
- <View style={ styles.contentContainer }>
106
- <BottomSheet.Cell
107
- icon={ link }
108
- style={ omniCellStyle }
109
- valueStyle={ styles.omniInput }
110
- value={ value }
111
- placeholder={ __( 'Search or type URL' ) }
112
- autoCapitalize="none"
113
- autoCorrect={ false }
114
- keyboardType="url"
115
- onChangeValue={ setValue }
116
- onSubmit={ onSubmit }
117
- /* eslint-disable-next-line jsx-a11y/no-autofocus */
118
- autoFocus
119
- separatorType="none"
120
- >
121
- { value !== '' && (
122
- <TouchableOpacity
123
- onPress={ clear }
124
- style={ styles.clearIcon }
125
- >
126
- <Icon
127
- icon={ cancelCircleFilled }
128
- fill={ iconStyle.color }
129
- size={ 24 }
130
- />
131
- </TouchableOpacity>
132
- ) }
133
- </BottomSheet.Cell>
134
- { !! clipboardUrl && clipboardUrl !== value && (
135
- <BottomSheet.LinkSuggestionItemCell
136
- accessible
137
- accessibilityLabel={ sprintf(
138
- /* translators: %s: Copy URL from the clipboard, https://sample.url */
139
- __( 'Copy URL from the clipboard, %s' ),
140
- clipboardUrl
141
- ) }
142
- suggestion={ {
143
- type: 'clipboard',
144
- url: clipboardUrl,
145
- isDirectEntry: true,
146
- } }
147
- onLinkPicked={ pickLink }
148
- />
149
- ) }
150
- { !! value && (
151
- <LinkPickerResults
152
- query={ value }
153
- onLinkPicked={ pickLink }
154
- directEntry={ directEntry }
155
- />
156
- ) }
157
- </View>
158
- </SafeAreaView>
159
- );
160
- };