@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,129 +0,0 @@
1
- /**
2
- * External dependencies
3
- */
4
- import { ActivityIndicator, FlatList, View } from 'react-native';
5
-
6
- /**
7
- * WordPress dependencies
8
- */
9
- import { debounce } from '@wordpress/compose';
10
- import { useState, useEffect, useRef } from '@wordpress/element';
11
- import { useSelect } from '@wordpress/data';
12
-
13
- /**
14
- * Internal dependencies
15
- */
16
- import styles from './styles.scss';
17
- import BottomSheet from '../bottom-sheet';
18
- import { BottomSheetConsumer } from '../bottom-sheet/bottom-sheet-context';
19
-
20
- const PER_PAGE = 20;
21
- const REQUEST_DEBOUNCE_DELAY = 400;
22
- const MINIMUM_QUERY_SIZE = 2;
23
- const meetsThreshold = ( query ) => MINIMUM_QUERY_SIZE <= query.length;
24
-
25
- export default function LinkPickerResults( {
26
- query,
27
- onLinkPicked,
28
- directEntry,
29
- } ) {
30
- const [ links, setLinks ] = useState( [ directEntry ] );
31
- const [ hasAllSuggestions, setHasAllSuggestions ] = useState( false );
32
- const nextPage = useRef( 1 );
33
- const pendingRequest = useRef();
34
- const clearRequest = () => {
35
- pendingRequest.current = null;
36
- };
37
-
38
- // A stable debounced function to fetch suggestions and append.
39
- const { fetchMoreSuggestions } = useSelect( ( select ) => {
40
- const { getSettings } = select( 'core/block-editor' );
41
- const fetchLinkSuggestions = async ( { search } ) => {
42
- if ( meetsThreshold( search ) ) {
43
- return await getSettings().__experimentalFetchLinkSuggestions(
44
- search,
45
- { page: nextPage.current, type: 'post', perPage: PER_PAGE }
46
- );
47
- }
48
- };
49
- const fetchMore = async ( {
50
- query: search,
51
- links: currentSuggestions,
52
- } ) => {
53
- // Return early if we've already detected the end of data or we are
54
- // already awaiting a response.
55
- if ( hasAllSuggestions || pendingRequest.current ) {
56
- return;
57
- }
58
- const request = fetchLinkSuggestions( { search } );
59
- pendingRequest.current = request;
60
- const suggestions = await request;
61
-
62
- // Only update links for the most recent request.
63
- if ( suggestions && request === pendingRequest.current ) {
64
- // Since we don't have the response header, we check if the results
65
- // are truncated to determine we've reached the end.
66
- if ( suggestions.length < PER_PAGE ) {
67
- setHasAllSuggestions( true );
68
- }
69
- setLinks( [ ...currentSuggestions, ...suggestions ] );
70
- nextPage.current++;
71
- }
72
-
73
- clearRequest();
74
- };
75
- return {
76
- fetchMoreSuggestions: debounce( fetchMore, REQUEST_DEBOUNCE_DELAY ),
77
- };
78
- // Not adding dependencies for now, to avoid introducing a regression
79
- // (see https://github.com/WordPress/gutenberg/pull/23922#discussion_r1170634879).
80
- }, [] );
81
-
82
- // Prevent setting state when unmounted.
83
- useEffect( () => clearRequest, [] );
84
-
85
- // Any time the query changes, we reset pagination.
86
- useEffect( () => {
87
- clearRequest();
88
- nextPage.current = 1;
89
- setHasAllSuggestions( false );
90
- setLinks( [ directEntry ] );
91
- fetchMoreSuggestions( { query, links: [ directEntry ] } );
92
- // See https://github.com/WordPress/gutenberg/pull/41166
93
- }, [ query ] );
94
-
95
- const onEndReached = () => fetchMoreSuggestions( { query, links } );
96
-
97
- const spinner = ! hasAllSuggestions && meetsThreshold( query ) && (
98
- <View style={ styles.spinner } testID="link-picker-loading">
99
- <ActivityIndicator animating />
100
- </View>
101
- );
102
-
103
- return (
104
- <BottomSheetConsumer>
105
- { ( { listProps } ) => (
106
- <FlatList
107
- data={ links }
108
- keyboardShouldPersistTaps="always"
109
- renderItem={ ( { item } ) => (
110
- <BottomSheet.LinkSuggestionItemCell
111
- suggestion={ item }
112
- onLinkPicked={ onLinkPicked }
113
- />
114
- ) }
115
- keyExtractor={ ( { url, type } ) => `${ url }-${ type }` }
116
- onEndReached={ onEndReached }
117
- onEndReachedThreshold={ 0.1 }
118
- initialNumToRender={ PER_PAGE }
119
- ListFooterComponent={ spinner }
120
- { ...listProps }
121
- contentContainerStyle={ [
122
- ...listProps.contentContainerStyle,
123
- styles.list,
124
- ] }
125
- />
126
- ) }
127
- </BottomSheetConsumer>
128
- );
129
- }
@@ -1,60 +0,0 @@
1
- /**
2
- * External dependencies
3
- */
4
- import { Keyboard } from 'react-native';
5
- import { useNavigation, useRoute } from '@react-navigation/native';
6
-
7
- /**
8
- * WordPress dependencies
9
- */
10
- import { useEffect, useMemo, useRef } from '@wordpress/element';
11
-
12
- /**
13
- * Internal dependencies
14
- */
15
- import { LinkPicker } from './';
16
-
17
- const LinkPickerScreen = ( { returnScreenName } ) => {
18
- const navigation = useNavigation();
19
- const route = useRoute();
20
- const navigateToLinkTimeoutRef = useRef( null );
21
- const navigateBackTimeoutRef = useRef( null );
22
-
23
- const onLinkPicked = ( { url, title } ) => {
24
- Keyboard.dismiss();
25
- navigateToLinkTimeoutRef.current = setTimeout( () => {
26
- navigation.navigate( returnScreenName, {
27
- inputValue: url,
28
- text: title,
29
- } );
30
- }, 100 );
31
- };
32
-
33
- const onCancel = () => {
34
- Keyboard.dismiss();
35
- navigateBackTimeoutRef.current = setTimeout( () => {
36
- navigation.goBack();
37
- }, 100 );
38
- };
39
-
40
- useEffect( () => {
41
- return () => {
42
- clearTimeout( navigateToLinkTimeoutRef.current );
43
- clearTimeout( navigateBackTimeoutRef.current );
44
- };
45
- }, [] );
46
-
47
- const { inputValue } = route.params;
48
- return useMemo( () => {
49
- return (
50
- <LinkPicker
51
- value={ inputValue }
52
- onLinkPicked={ onLinkPicked }
53
- onCancel={ onCancel }
54
- />
55
- );
56
- // See https://github.com/WordPress/gutenberg/pull/41166
57
- }, [ inputValue ] );
58
- };
59
-
60
- export default LinkPickerScreen;
@@ -1,45 +0,0 @@
1
- .omniCell {
2
- border-bottom-width: 1px;
3
- border-bottom-color: $light-gray-400;
4
- }
5
-
6
- .omniCellDark {
7
- border-bottom-color: $gray-70;
8
- }
9
-
10
- .omniInput {
11
- text-align: left;
12
- }
13
-
14
- .spinner {
15
- height: 150px;
16
- justify-content: center;
17
- }
18
-
19
- .clearIcon {
20
- margin-left: 16;
21
- }
22
-
23
- .icon {
24
- color: $gray-lighten-10;
25
- }
26
-
27
- .iconDark {
28
- color: $dark-tertiary;
29
- }
30
-
31
- .contentContainer {
32
- padding-left: $grid-unit-20;
33
- padding-right: $grid-unit-20;
34
- flex: 1;
35
- }
36
-
37
- .safeArea {
38
- height: 100%;
39
- }
40
-
41
- .list {
42
- padding-left: 0;
43
- padding-right: 0;
44
- padding-bottom: $grid-unit-20;
45
- }
@@ -1,35 +0,0 @@
1
- /**
2
- * External dependencies
3
- */
4
- import { act, measurePerformance } from 'test/helpers';
5
- import Clipboard from '@react-native-clipboard/clipboard';
6
-
7
- /**
8
- * Internal dependencies
9
- */
10
- import { LinkPicker } from '../../index';
11
-
12
- describe( 'LinkPicker', () => {
13
- const onLinkPicked = jest.fn();
14
- const onCancel = jest.fn();
15
- const clipboardResult = Promise.resolve( '' );
16
- Clipboard.getString.mockReturnValue( clipboardResult );
17
-
18
- it( 'performance is stable when clipboard results do not change', async () => {
19
- const scenario = async () => {
20
- // Given the clipboard result is an empty string, there are no
21
- // user-facing changes to query. Thus, we must await the promise
22
- // itself.
23
- await act( () => clipboardResult );
24
- };
25
-
26
- await measurePerformance(
27
- <LinkPicker
28
- onLinkPicked={ onLinkPicked }
29
- onCancel={ onCancel }
30
- value=""
31
- />,
32
- { scenario }
33
- );
34
- } );
35
- } );
@@ -1,332 +0,0 @@
1
- /**
2
- * External dependencies
3
- */
4
- import { Platform } from 'react-native';
5
- import Clipboard from '@react-native-clipboard/clipboard';
6
- /**
7
- * WordPress dependencies
8
- */
9
- import { compose } from '@wordpress/compose';
10
- import { withSelect } from '@wordpress/data';
11
- import { isURL, prependHTTP } from '@wordpress/url';
12
- import {
13
- useEffect,
14
- useState,
15
- useRef,
16
- useContext,
17
- useCallback,
18
- } from '@wordpress/element';
19
- import { link, external } from '@wordpress/icons';
20
-
21
- /**
22
- * Internal dependencies
23
- */
24
- import BottomSheet from '../bottom-sheet';
25
- import { BottomSheetContext } from '../bottom-sheet/bottom-sheet-context';
26
- import PanelBody from '../../panel/body';
27
- import TextControl from '../../text-control';
28
- import ToggleControl from '../../toggle-control';
29
- import FooterMessageControl from '../../footer-message-control';
30
- import PanelActions from '../../panel/actions';
31
- import LinkRelIcon from './link-rel';
32
-
33
- import styles from './style.scss';
34
-
35
- const NEW_TAB_REL = 'noopener';
36
- function LinkSettings( {
37
- // Control link settings `BottomSheet` visibility
38
- isVisible,
39
- // Callback that is called on closing bottom sheet
40
- onClose,
41
- // Function called to set attributes
42
- setAttributes,
43
- // Callback that is called when url input field is empty
44
- onEmptyURL,
45
- // Object of available options along with specific, customizable properties.
46
- // Available options keys:
47
- // * url - uses `TextControl` component to set `attributes.url`
48
- // * linkLabel - uses `TextControl` component to set `attributes.label`
49
- // * openInNewTab - uses `ToggleControl` component to set `attributes.linkTarget` and `attributes.rel`
50
- // * linkRel - uses `TextControl` component to set `attributes.rel`
51
- // * footer - uses `FooterMessageControl` component to display message, e.g. about missing functionality
52
- // Available properties:
53
- // * label - control component label, e.g. `Button Link URL`
54
- // * placeholder - control component placeholder, e.g. `Add URL`
55
- // * autoFocus (url only) - whether url input should be focused on sheet opening
56
- // * autoFill (url only) - whether url input should be filled with url from clipboard
57
- // Example:
58
- // const options = {
59
- // url: {
60
- // label: __( 'Button Link URL' ),
61
- // placeholder: __( 'Add URL' ),
62
- // autoFocus: true,
63
- // autoFill: true,
64
- // }
65
- // }
66
- options,
67
- // Specifies whether settings should be wrapped into `BottomSheet`
68
- withBottomSheet,
69
- // Defines buttons which will be displayed below the all options.
70
- // It's an array of objects with following properties:
71
- // * label - button title
72
- // * onPress - callback that is called on pressing button
73
- // Example:
74
- // const actions = [
75
- // {
76
- // label: __( 'Remove link' ),
77
- // onPress: () => setAttributes({ url: '' }),
78
- // },
79
- // ];
80
- actions,
81
- // Specifies whether general `BottomSheet` is opened
82
- editorSidebarOpened,
83
- // Specifies whether icon should be displayed next to the label
84
- showIcon,
85
- onLinkCellPressed,
86
- urlValue,
87
- // Attributes properties
88
- url,
89
- label = '',
90
- linkTarget,
91
- rel = '',
92
- } ) {
93
- const [ urlInputValue, setUrlInputValue ] = useState( '' );
94
- const [ labelInputValue, setLabelInputValue ] = useState( '' );
95
- const [ linkRelInputValue, setLinkRelInputValue ] = useState( '' );
96
- const onCloseSettingsSheetConsumed = useRef( false );
97
- const prevEditorSidebarOpenedRef = useRef();
98
-
99
- const { onHandleClosingBottomSheet } = useContext( BottomSheetContext );
100
- useEffect( () => {
101
- if ( onHandleClosingBottomSheet ) {
102
- onHandleClosingBottomSheet( onCloseSettingsSheet );
103
- }
104
- // See https://github.com/WordPress/gutenberg/pull/41166
105
- }, [ urlInputValue, labelInputValue, linkRelInputValue ] );
106
-
107
- useEffect( () => {
108
- prevEditorSidebarOpenedRef.current = editorSidebarOpened;
109
- } );
110
- const prevEditorSidebarOpened = prevEditorSidebarOpenedRef.current;
111
-
112
- useEffect( () => {
113
- if ( url !== urlInputValue ) {
114
- setUrlInputValue( url || '' );
115
- }
116
- // See https://github.com/WordPress/gutenberg/pull/41166
117
- }, [ url ] );
118
-
119
- useEffect( () => {
120
- setLabelInputValue( label || '' );
121
- }, [ label ] );
122
-
123
- useEffect( () => {
124
- setLinkRelInputValue( rel || '' );
125
- }, [ rel ] );
126
-
127
- useEffect( () => {
128
- const isSettingSheetOpen = isVisible || editorSidebarOpened;
129
- if ( isSettingSheetOpen ) {
130
- onCloseSettingsSheetConsumed.current = false;
131
- }
132
-
133
- if ( options.url.autoFill && isSettingSheetOpen && ! url ) {
134
- getURLFromClipboard();
135
- }
136
-
137
- if ( prevEditorSidebarOpened && ! editorSidebarOpened ) {
138
- onSetAttributes();
139
- }
140
- // See https://github.com/WordPress/gutenberg/pull/41166
141
- }, [ editorSidebarOpened, isVisible ] );
142
-
143
- useEffect( () => {
144
- if ( ! urlValue && onEmptyURL ) {
145
- onEmptyURL();
146
- }
147
-
148
- if ( prependHTTP( urlValue ) !== url ) {
149
- setAttributes( {
150
- url: prependHTTP( urlValue ),
151
- } );
152
- }
153
- // See https://github.com/WordPress/gutenberg/pull/41166
154
- }, [ urlValue ] );
155
-
156
- const onChangeURL = useCallback(
157
- ( value ) => {
158
- if ( ! value && onEmptyURL ) {
159
- onEmptyURL();
160
- }
161
- setUrlInputValue( value );
162
- },
163
- [ onEmptyURL ]
164
- );
165
-
166
- const onChangeLabel = useCallback( ( value ) => {
167
- setLabelInputValue( value );
168
- }, [] );
169
-
170
- const onSetAttributes = useCallback( () => {
171
- const newURL = prependHTTP( urlInputValue );
172
- if (
173
- url !== newURL ||
174
- labelInputValue !== label ||
175
- linkRelInputValue !== rel
176
- ) {
177
- setAttributes( {
178
- url: newURL,
179
- label: labelInputValue,
180
- rel: linkRelInputValue,
181
- } );
182
- }
183
- // See https://github.com/WordPress/gutenberg/pull/41166
184
- }, [ urlInputValue, labelInputValue, linkRelInputValue, setAttributes ] );
185
-
186
- const onCloseSettingsSheet = useCallback( () => {
187
- if ( onCloseSettingsSheetConsumed.current ) {
188
- return;
189
- }
190
-
191
- onCloseSettingsSheetConsumed.current = true;
192
-
193
- onSetAttributes();
194
-
195
- if ( onClose ) {
196
- onClose();
197
- }
198
- }, [ onClose, onSetAttributes ] );
199
-
200
- const onChangeOpenInNewTab = useCallback(
201
- ( value ) => {
202
- const newLinkTarget = value ? '_blank' : undefined;
203
-
204
- let updatedRel = linkRelInputValue;
205
- if ( newLinkTarget && ! linkRelInputValue ) {
206
- updatedRel = NEW_TAB_REL;
207
- } else if ( ! newLinkTarget && linkRelInputValue === NEW_TAB_REL ) {
208
- updatedRel = undefined;
209
- }
210
-
211
- setAttributes( {
212
- linkTarget: newLinkTarget,
213
- rel: updatedRel,
214
- } );
215
- },
216
- // See https://github.com/WordPress/gutenberg/pull/41166
217
- [ linkRelInputValue ]
218
- );
219
-
220
- const onChangeLinkRel = useCallback( ( value ) => {
221
- setLinkRelInputValue( value );
222
- }, [] );
223
-
224
- async function getURLFromClipboard() {
225
- const clipboardText = await Clipboard.getString();
226
-
227
- if ( ! clipboardText ) {
228
- return;
229
- }
230
- // Check if pasted text is URL.
231
- if ( ! isURL( clipboardText ) ) {
232
- return;
233
- }
234
-
235
- setAttributes( { url: clipboardText } );
236
- }
237
-
238
- function getSettings() {
239
- return (
240
- <>
241
- { options.url &&
242
- ( onLinkCellPressed ? (
243
- <BottomSheet.LinkCell
244
- showIcon={ showIcon }
245
- value={ url }
246
- valueMask={ options.url.valueMask }
247
- onPress={ onLinkCellPressed }
248
- />
249
- ) : (
250
- <TextControl
251
- icon={ showIcon && link }
252
- label={ options.url.label }
253
- value={ urlInputValue }
254
- valuePlaceholder={ options.url.placeholder }
255
- onChange={ onChangeURL }
256
- onSubmit={ onCloseSettingsSheet }
257
- autoCapitalize="none"
258
- autoCorrect={ false }
259
- // eslint-disable-next-line jsx-a11y/no-autofocus
260
- autoFocus={
261
- Platform.OS === 'ios' && options.url.autoFocus
262
- }
263
- keyboardType="url"
264
- />
265
- ) ) }
266
- { options.linkLabel && (
267
- <TextControl
268
- label={ options.linkLabel.label }
269
- value={ labelInputValue }
270
- valuePlaceholder={ options.linkLabel.placeholder }
271
- onChange={ onChangeLabel }
272
- />
273
- ) }
274
- { !! urlInputValue && (
275
- <>
276
- { options.openInNewTab && (
277
- <ToggleControl
278
- icon={ showIcon && external }
279
- label={ options.openInNewTab.label }
280
- checked={ linkTarget === '_blank' }
281
- onChange={ onChangeOpenInNewTab }
282
- />
283
- ) }
284
- { options.linkRel && (
285
- <TextControl
286
- icon={ showIcon && LinkRelIcon }
287
- label={ options.linkRel.label }
288
- value={ linkRelInputValue }
289
- valuePlaceholder={ options.linkRel.placeholder }
290
- onChange={ onChangeLinkRel }
291
- onSubmit={ onCloseSettingsSheet }
292
- autoCapitalize="none"
293
- autoCorrect={ false }
294
- keyboardType="default"
295
- />
296
- ) }
297
- </>
298
- ) }
299
- </>
300
- );
301
- }
302
-
303
- if ( ! withBottomSheet ) {
304
- return getSettings();
305
- }
306
-
307
- return (
308
- <>
309
- <PanelBody style={ styles.linkSettingsPanel }>
310
- { getSettings() }
311
- </PanelBody>
312
- { options.footer && (
313
- <PanelBody style={ styles.linkSettingsPanel }>
314
- <FooterMessageControl
315
- label={ options.footer.label }
316
- separatorType={ options.footer.separatorType }
317
- />
318
- </PanelBody>
319
- ) }
320
- { actions && <PanelActions actions={ actions } /> }
321
- </>
322
- );
323
- }
324
-
325
- export default compose( [
326
- withSelect( ( select ) => {
327
- const { isEditorSidebarOpened } = select( 'core/edit-post' );
328
- return {
329
- editorSidebarOpened: isEditorSidebarOpened(),
330
- };
331
- } ),
332
- ] )( LinkSettings );
@@ -1,10 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import { Path, SVG } from '@wordpress/primitives';
5
-
6
- export default (
7
- <SVG viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
8
- <Path d="M17 16l-4-4V8.82C14.16 8.4 15 7.3 15 6c0-1.66-1.34-3-3-3S9 4.34 9 6c0 1.3.84 2.4 2 2.82V12l-4 4H3v5h5v-3.05l4-4.2 4 4.2V21h5v-5h-4z" />
9
- </SVG>
10
- );
@@ -1,50 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import { memo } from '@wordpress/element';
5
- /**
6
- * Internal dependencies
7
- */
8
- import BottomSheet from '../bottom-sheet';
9
- import LinkSettingsScreen from './link-settings-screen';
10
- import LinkPickerScreen from '../link-picker/link-picker-screen';
11
-
12
- const linkSettingsScreens = {
13
- settings: 'LinkSettingsScreen',
14
- linkPicker: 'linkPicker',
15
- };
16
-
17
- function LinkSettingsNavigation( props ) {
18
- if ( ! props.withBottomSheet ) {
19
- return <LinkSettingsScreen { ...props } />;
20
- }
21
- return (
22
- <BottomSheet
23
- isVisible={ props.isVisible }
24
- onClose={ props.onClose }
25
- onDismiss={ props.onDismiss }
26
- testID="link-settings-navigation"
27
- hideHeader
28
- hasNavigation
29
- >
30
- <BottomSheet.NavigationContainer animate main>
31
- <BottomSheet.NavigationScreen
32
- name={ linkSettingsScreens.settings }
33
- >
34
- <LinkSettingsScreen { ...props } withBottomSheet />
35
- </BottomSheet.NavigationScreen>
36
- <BottomSheet.NavigationScreen
37
- name={ linkSettingsScreens.linkPicker }
38
- isScrollable
39
- fullScreen
40
- >
41
- <LinkPickerScreen
42
- returnScreenName={ linkSettingsScreens.settings }
43
- />
44
- </BottomSheet.NavigationScreen>
45
- </BottomSheet.NavigationContainer>
46
- </BottomSheet>
47
- );
48
- }
49
-
50
- export default memo( LinkSettingsNavigation );
@@ -1,44 +0,0 @@
1
- /**
2
- * External dependencies
3
- */
4
- import { useNavigation, useRoute } from '@react-navigation/native';
5
-
6
- /**
7
- * WordPress dependencies
8
- */
9
- import { useMemo } from '@wordpress/element';
10
-
11
- /**
12
- * Internal dependencies
13
- */
14
- import LinkSettings from './';
15
-
16
- const LinkSettingsScreen = ( props ) => {
17
- const navigation = useNavigation();
18
- const route = useRoute();
19
- const { url = '' } = props;
20
- const { inputValue = url } = route.params || {};
21
-
22
- const onLinkCellPressed = () => {
23
- if ( props.onLinkCellPressed ) {
24
- props.onLinkCellPressed( { navigation } );
25
- } else {
26
- navigation.navigate( 'linkPicker', { inputValue } );
27
- }
28
- };
29
-
30
- return useMemo( () => {
31
- return (
32
- <LinkSettings
33
- { ...props }
34
- onLinkCellPressed={
35
- props.hasPicker ? onLinkCellPressed : undefined
36
- }
37
- urlValue={ inputValue }
38
- />
39
- );
40
- // See https://github.com/WordPress/gutenberg/pull/41166
41
- }, [ props, inputValue, navigation, route ] );
42
- };
43
-
44
- export default LinkSettingsScreen;