@wordpress/components 19.10.0 → 19.11.0

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 (420) hide show
  1. package/CHANGELOG.md +24 -6
  2. package/build/border-box-control/border-box-control/component.js +22 -7
  3. package/build/border-box-control/border-box-control/component.js.map +1 -1
  4. package/build/border-box-control/border-box-control-linked-button/hook.js +3 -2
  5. package/build/border-box-control/border-box-control-linked-button/hook.js.map +1 -1
  6. package/build/border-box-control/border-box-control-split-controls/component.js +21 -8
  7. package/build/border-box-control/border-box-control-split-controls/component.js.map +1 -1
  8. package/build/border-box-control/border-box-control-visualizer/hook.js +3 -2
  9. package/build/border-box-control/border-box-control-visualizer/hook.js.map +1 -1
  10. package/build/border-box-control/styles.js +11 -15
  11. package/build/border-box-control/styles.js.map +1 -1
  12. package/build/border-control/border-control/component.js +5 -3
  13. package/build/border-control/border-control/component.js.map +1 -1
  14. package/build/border-control/border-control/hook.js +6 -3
  15. package/build/border-control/border-control/hook.js.map +1 -1
  16. package/build/border-control/border-control-dropdown/component.js +6 -2
  17. package/build/border-control/border-control-dropdown/component.js.map +1 -1
  18. package/build/border-control/border-control-dropdown/hook.js +5 -5
  19. package/build/border-control/border-control-dropdown/hook.js.map +1 -1
  20. package/build/border-control/styles.js +58 -29
  21. package/build/border-control/styles.js.map +1 -1
  22. package/build/button/index.native.js +16 -2
  23. package/build/button/index.native.js.map +1 -1
  24. package/build/button-group/index.js +24 -7
  25. package/build/button-group/index.js.map +1 -1
  26. package/build/{flyout → button-group}/types.js +0 -0
  27. package/build/button-group/types.js.map +1 -0
  28. package/build/checkbox-control/index.js +34 -7
  29. package/build/checkbox-control/index.js.map +1 -1
  30. package/build/checkbox-control/types.js +6 -0
  31. package/build/checkbox-control/types.js.map +1 -0
  32. package/build/color-palette/index.js +5 -12
  33. package/build/color-palette/index.js.map +1 -1
  34. package/build/date-time/date.js +43 -19
  35. package/build/date-time/date.js.map +1 -1
  36. package/build/date-time/index.js +28 -3
  37. package/build/date-time/index.js.map +1 -1
  38. package/build/date-time/time.js +42 -40
  39. package/build/date-time/time.js.map +1 -1
  40. package/build/date-time/timezone.js +4 -3
  41. package/build/date-time/timezone.js.map +1 -1
  42. package/build/date-time/types.js +6 -0
  43. package/build/date-time/types.js.map +1 -0
  44. package/build/date-time/utils.js +6 -4
  45. package/build/date-time/utils.js.map +1 -1
  46. package/build/disabled/index.js +1 -1
  47. package/build/disabled/index.js.map +1 -1
  48. package/build/draggable/index.native.js +223 -0
  49. package/build/draggable/index.native.js.map +1 -0
  50. package/build/dropdown/index.js +7 -5
  51. package/build/dropdown/index.js.map +1 -1
  52. package/build/focal-point-picker/index.native.js +3 -3
  53. package/build/focal-point-picker/index.native.js.map +1 -1
  54. package/build/index.js +0 -8
  55. package/build/index.js.map +1 -1
  56. package/build/index.native.js +16 -0
  57. package/build/index.native.js.map +1 -1
  58. package/build/mobile/bottom-sheet/bottom-sheet-navigation/navigation-screen.native.js +1 -1
  59. package/build/mobile/bottom-sheet/bottom-sheet-navigation/navigation-screen.native.js.map +1 -1
  60. package/build/mobile/bottom-sheet/index.native.js +1 -1
  61. package/build/mobile/bottom-sheet/index.native.js.map +1 -1
  62. package/build/mobile/bottom-sheet-select-control/index.native.js +3 -2
  63. package/build/mobile/bottom-sheet-select-control/index.native.js.map +1 -1
  64. package/build/mobile/html-text-input/index.native.js +19 -8
  65. package/build/mobile/html-text-input/index.native.js.map +1 -1
  66. package/build/mobile/keyboard-aware-flat-list/index.android.js +28 -5
  67. package/build/mobile/keyboard-aware-flat-list/index.android.js.map +1 -1
  68. package/build/mobile/keyboard-aware-flat-list/index.ios.js +47 -24
  69. package/build/mobile/keyboard-aware-flat-list/index.ios.js.map +1 -1
  70. package/build/palette-edit/index.js +38 -7
  71. package/build/palette-edit/index.js.map +1 -1
  72. package/build/popover/index.js +223 -277
  73. package/build/popover/index.js.map +1 -1
  74. package/build/resizable-box/resize-tooltip/utils.js +5 -8
  75. package/build/resizable-box/resize-tooltip/utils.js.map +1 -1
  76. package/build/sandbox/index.native.js +1 -1
  77. package/build/sandbox/index.native.js.map +1 -1
  78. package/build/select-control/styles/select-control-styles.js +14 -11
  79. package/build/select-control/styles/select-control-styles.js.map +1 -1
  80. package/build/toggle-group-control/toggle-group-control/component.js +1 -3
  81. package/build/toggle-group-control/toggle-group-control/component.js.map +1 -1
  82. package/build/tooltip/index.js +2 -2
  83. package/build/tooltip/index.js.map +1 -1
  84. package/build-module/border-box-control/border-box-control/component.js +22 -7
  85. package/build-module/border-box-control/border-box-control/component.js.map +1 -1
  86. package/build-module/border-box-control/border-box-control-linked-button/hook.js +3 -2
  87. package/build-module/border-box-control/border-box-control-linked-button/hook.js.map +1 -1
  88. package/build-module/border-box-control/border-box-control-split-controls/component.js +21 -8
  89. package/build-module/border-box-control/border-box-control-split-controls/component.js.map +1 -1
  90. package/build-module/border-box-control/border-box-control-visualizer/hook.js +3 -2
  91. package/build-module/border-box-control/border-box-control-visualizer/hook.js.map +1 -1
  92. package/build-module/border-box-control/styles.js +9 -15
  93. package/build-module/border-box-control/styles.js.map +1 -1
  94. package/build-module/border-control/border-control/component.js +5 -3
  95. package/build-module/border-control/border-control/component.js.map +1 -1
  96. package/build-module/border-control/border-control/hook.js +6 -3
  97. package/build-module/border-control/border-control/hook.js.map +1 -1
  98. package/build-module/border-control/border-control-dropdown/component.js +6 -2
  99. package/build-module/border-control/border-control-dropdown/component.js.map +1 -1
  100. package/build-module/border-control/border-control-dropdown/hook.js +5 -5
  101. package/build-module/border-control/border-control-dropdown/hook.js.map +1 -1
  102. package/build-module/border-control/styles.js +56 -29
  103. package/build-module/border-control/styles.js.map +1 -1
  104. package/build-module/button/index.native.js +16 -3
  105. package/build-module/button/index.native.js.map +1 -1
  106. package/build-module/button-group/index.js +27 -7
  107. package/build-module/button-group/index.js.map +1 -1
  108. package/build-module/{flyout → button-group}/types.js +0 -0
  109. package/build-module/{flyout → button-group}/types.js.map +0 -0
  110. package/build-module/checkbox-control/index.js +31 -7
  111. package/build-module/checkbox-control/index.js.map +1 -1
  112. package/build-module/checkbox-control/types.js +2 -0
  113. package/{build/flyout → build-module/checkbox-control}/types.js.map +0 -0
  114. package/build-module/color-palette/index.js +5 -11
  115. package/build-module/color-palette/index.js.map +1 -1
  116. package/build-module/date-time/date.js +44 -19
  117. package/build-module/date-time/date.js.map +1 -1
  118. package/build-module/date-time/index.js +28 -4
  119. package/build-module/date-time/index.js.map +1 -1
  120. package/build-module/date-time/time.js +43 -41
  121. package/build-module/date-time/time.js.map +1 -1
  122. package/build-module/date-time/timezone.js +4 -3
  123. package/build-module/date-time/timezone.js.map +1 -1
  124. package/build-module/date-time/types.js +2 -0
  125. package/build-module/date-time/types.js.map +1 -0
  126. package/build-module/date-time/utils.js +6 -4
  127. package/build-module/date-time/utils.js.map +1 -1
  128. package/build-module/disabled/index.js +1 -1
  129. package/build-module/disabled/index.js.map +1 -1
  130. package/build-module/draggable/index.native.js +206 -0
  131. package/build-module/draggable/index.native.js.map +1 -0
  132. package/build-module/dropdown/index.js +7 -5
  133. package/build-module/dropdown/index.js.map +1 -1
  134. package/build-module/focal-point-picker/index.native.js +3 -3
  135. package/build-module/focal-point-picker/index.native.js.map +1 -1
  136. package/build-module/index.js +0 -1
  137. package/build-module/index.js.map +1 -1
  138. package/build-module/index.native.js +2 -1
  139. package/build-module/index.native.js.map +1 -1
  140. package/build-module/mobile/bottom-sheet/bottom-sheet-navigation/navigation-screen.native.js +1 -1
  141. package/build-module/mobile/bottom-sheet/bottom-sheet-navigation/navigation-screen.native.js.map +1 -1
  142. package/build-module/mobile/bottom-sheet/index.native.js +1 -1
  143. package/build-module/mobile/bottom-sheet/index.native.js.map +1 -1
  144. package/build-module/mobile/bottom-sheet-select-control/index.native.js +3 -2
  145. package/build-module/mobile/bottom-sheet-select-control/index.native.js.map +1 -1
  146. package/build-module/mobile/html-text-input/index.native.js +20 -9
  147. package/build-module/mobile/html-text-input/index.native.js.map +1 -1
  148. package/build-module/mobile/keyboard-aware-flat-list/index.android.js +21 -5
  149. package/build-module/mobile/keyboard-aware-flat-list/index.android.js.map +1 -1
  150. package/build-module/mobile/keyboard-aware-flat-list/index.ios.js +42 -25
  151. package/build-module/mobile/keyboard-aware-flat-list/index.ios.js.map +1 -1
  152. package/build-module/palette-edit/index.js +37 -7
  153. package/build-module/palette-edit/index.js.map +1 -1
  154. package/build-module/popover/index.js +225 -279
  155. package/build-module/popover/index.js.map +1 -1
  156. package/build-module/resizable-box/resize-tooltip/utils.js +4 -5
  157. package/build-module/resizable-box/resize-tooltip/utils.js.map +1 -1
  158. package/build-module/sandbox/index.native.js +1 -1
  159. package/build-module/sandbox/index.native.js.map +1 -1
  160. package/build-module/select-control/styles/select-control-styles.js +14 -11
  161. package/build-module/select-control/styles/select-control-styles.js.map +1 -1
  162. package/build-module/toggle-group-control/toggle-group-control/component.js +2 -3
  163. package/build-module/toggle-group-control/toggle-group-control/component.js.map +1 -1
  164. package/build-module/tooltip/index.js +2 -2
  165. package/build-module/tooltip/index.js.map +1 -1
  166. package/build-style/style-rtl.css +31 -170
  167. package/build-style/style.css +27 -170
  168. package/build-types/border-box-control/border-box-control/component.d.ts.map +1 -1
  169. package/build-types/border-box-control/border-box-control/hook.d.ts +3 -1
  170. package/build-types/border-box-control/border-box-control/hook.d.ts.map +1 -1
  171. package/build-types/border-box-control/border-box-control-linked-button/hook.d.ts.map +1 -1
  172. package/build-types/border-box-control/border-box-control-split-controls/component.d.ts.map +1 -1
  173. package/build-types/border-box-control/border-box-control-split-controls/hook.d.ts +3 -1
  174. package/build-types/border-box-control/border-box-control-split-controls/hook.d.ts.map +1 -1
  175. package/build-types/border-box-control/border-box-control-visualizer/hook.d.ts.map +1 -1
  176. package/build-types/border-box-control/styles.d.ts +2 -2
  177. package/build-types/border-box-control/styles.d.ts.map +1 -1
  178. package/build-types/border-box-control/types.d.ts +40 -13
  179. package/build-types/border-box-control/types.d.ts.map +1 -1
  180. package/build-types/border-control/border-control/component.d.ts.map +1 -1
  181. package/build-types/border-control/border-control/hook.d.ts +2 -1
  182. package/build-types/border-control/border-control/hook.d.ts.map +1 -1
  183. package/build-types/border-control/border-control-dropdown/component.d.ts.map +1 -1
  184. package/build-types/border-control/border-control-dropdown/hook.d.ts +1 -0
  185. package/build-types/border-control/border-control-dropdown/hook.d.ts.map +1 -1
  186. package/build-types/border-control/styles.d.ts +2 -1
  187. package/build-types/border-control/styles.d.ts.map +1 -1
  188. package/build-types/border-control/types.d.ts +18 -6
  189. package/build-types/border-control/types.d.ts.map +1 -1
  190. package/build-types/button-group/index.d.ts +25 -0
  191. package/build-types/button-group/index.d.ts.map +1 -0
  192. package/build-types/button-group/stories/index.d.ts +12 -0
  193. package/build-types/button-group/stories/index.d.ts.map +1 -0
  194. package/build-types/button-group/types.d.ts +11 -0
  195. package/build-types/button-group/types.d.ts.map +1 -0
  196. package/build-types/checkbox-control/index.d.ts +26 -0
  197. package/build-types/checkbox-control/index.d.ts.map +1 -0
  198. package/build-types/checkbox-control/stories/index.d.ts +13 -0
  199. package/build-types/checkbox-control/stories/index.d.ts.map +1 -0
  200. package/build-types/checkbox-control/types.d.ts +35 -0
  201. package/build-types/checkbox-control/types.d.ts.map +1 -0
  202. package/build-types/color-palette/index.d.ts.map +1 -1
  203. package/build-types/color-picker/styles.d.ts +1 -1
  204. package/build-types/date-time/date.d.ts +24 -0
  205. package/build-types/date-time/date.d.ts.map +1 -0
  206. package/build-types/date-time/index.d.ts +35 -0
  207. package/build-types/date-time/index.d.ts.map +1 -0
  208. package/build-types/date-time/stories/date.d.ts +14 -0
  209. package/build-types/date-time/stories/date.d.ts.map +1 -0
  210. package/build-types/date-time/stories/index.d.ts +14 -0
  211. package/build-types/date-time/stories/index.d.ts.map +1 -0
  212. package/build-types/date-time/stories/time.d.ts +12 -0
  213. package/build-types/date-time/stories/time.d.ts.map +1 -0
  214. package/build-types/date-time/stories/utils.d.ts +3 -0
  215. package/build-types/date-time/stories/utils.d.ts.map +1 -0
  216. package/build-types/date-time/test/date.d.ts +2 -0
  217. package/build-types/date-time/test/date.d.ts.map +1 -0
  218. package/build-types/date-time/test/time.d.ts +2 -0
  219. package/build-types/date-time/test/time.d.ts.map +1 -0
  220. package/build-types/date-time/test/utils.d.ts +2 -0
  221. package/build-types/date-time/test/utils.d.ts.map +1 -0
  222. package/build-types/date-time/time.d.ts +25 -0
  223. package/build-types/date-time/time.d.ts.map +1 -0
  224. package/build-types/date-time/timezone.d.ts +8 -0
  225. package/build-types/date-time/timezone.d.ts.map +1 -0
  226. package/build-types/date-time/types.d.ts +91 -0
  227. package/build-types/date-time/types.d.ts.map +1 -0
  228. package/build-types/date-time/utils.d.ts +15 -0
  229. package/build-types/date-time/utils.d.ts.map +1 -0
  230. package/build-types/dropdown/index.d.ts.map +1 -1
  231. package/build-types/input-control/index.d.ts +1 -1
  232. package/build-types/input-control/stories/index.d.ts +5 -5
  233. package/build-types/number-control/styles/number-control-styles.d.ts +1 -1
  234. package/build-types/popover/index.d.ts +5 -7
  235. package/build-types/popover/index.d.ts.map +1 -1
  236. package/build-types/resizable-box/index.d.ts +1 -1
  237. package/build-types/resizable-box/resize-tooltip/index.d.ts +1 -1
  238. package/build-types/resizable-box/resize-tooltip/utils.d.ts.map +1 -1
  239. package/build-types/select-control/styles/select-control-styles.d.ts.map +1 -1
  240. package/build-types/toggle-group-control/toggle-group-control/component.d.ts.map +1 -1
  241. package/build-types/tooltip/index.d.ts.map +1 -1
  242. package/package.json +19 -19
  243. package/src/autocomplete/style.scss +1 -1
  244. package/src/border-box-control/border-box-control/README.md +10 -14
  245. package/src/border-box-control/border-box-control/component.tsx +21 -4
  246. package/src/border-box-control/border-box-control-linked-button/hook.ts +10 -6
  247. package/src/border-box-control/border-box-control-split-controls/component.tsx +24 -7
  248. package/src/border-box-control/border-box-control-visualizer/hook.ts +11 -6
  249. package/src/border-box-control/stories/index.js +1 -0
  250. package/src/border-box-control/styles.ts +15 -8
  251. package/src/border-box-control/types.ts +40 -14
  252. package/src/border-control/border-control/README.md +0 -7
  253. package/src/border-control/border-control/component.tsx +4 -2
  254. package/src/border-control/border-control/hook.ts +5 -2
  255. package/src/border-control/border-control-dropdown/component.tsx +18 -11
  256. package/src/border-control/border-control-dropdown/hook.ts +7 -5
  257. package/src/border-control/stories/index.js +1 -0
  258. package/src/border-control/styles.ts +82 -22
  259. package/src/border-control/types.ts +18 -6
  260. package/src/button/index.native.js +33 -18
  261. package/src/button-group/index.tsx +47 -0
  262. package/src/button-group/stories/index.tsx +41 -0
  263. package/src/button-group/types.ts +11 -0
  264. package/src/checkbox-control/README.md +10 -8
  265. package/src/checkbox-control/{index.js → index.tsx} +49 -14
  266. package/src/checkbox-control/stories/{index.js → index.tsx} +49 -27
  267. package/src/checkbox-control/types.ts +36 -0
  268. package/src/circular-option-picker/style.scss +1 -0
  269. package/src/color-palette/index.js +6 -13
  270. package/src/color-palette/style.scss +3 -18
  271. package/src/date-time/README.md +13 -10
  272. package/src/date-time/{date.js → date.tsx} +49 -20
  273. package/src/date-time/{index.js → index.tsx} +31 -5
  274. package/src/date-time/stories/date.tsx +73 -0
  275. package/src/date-time/stories/index.tsx +75 -0
  276. package/src/date-time/stories/time.tsx +51 -0
  277. package/src/date-time/stories/utils.ts +9 -0
  278. package/src/date-time/test/{date.js → date.tsx} +3 -2
  279. package/src/date-time/test/{time.js → time.tsx} +34 -19
  280. package/src/date-time/test/{utils.js → utils.ts} +1 -1
  281. package/src/date-time/{time.js → time.tsx} +57 -46
  282. package/src/date-time/{timezone.js → timezone.tsx} +4 -3
  283. package/src/date-time/types.ts +106 -0
  284. package/src/date-time/utils.ts +20 -0
  285. package/src/disabled/index.js +1 -1
  286. package/src/draggable/index.native.js +215 -0
  287. package/src/draggable/style.native.scss +3 -0
  288. package/src/dropdown/index.js +9 -4
  289. package/src/dropdown/style.scss +1 -1
  290. package/src/focal-point-picker/index.native.js +3 -3
  291. package/src/form-file-upload/test/index.js +8 -4
  292. package/src/index.js +0 -1
  293. package/src/index.native.js +1 -0
  294. package/src/item-group/stories/index.js +22 -18
  295. package/src/mobile/bottom-sheet/bottom-sheet-navigation/navigation-screen.native.js +1 -1
  296. package/src/mobile/bottom-sheet/bottom-sheet-navigation/test/navigation-container.native.js +1 -1
  297. package/src/mobile/bottom-sheet/index.native.js +1 -1
  298. package/src/mobile/bottom-sheet-select-control/index.native.js +7 -2
  299. package/src/mobile/html-text-input/index.native.js +45 -29
  300. package/src/mobile/html-text-input/style.android.scss +1 -15
  301. package/src/mobile/html-text-input/style.ios.scss +1 -15
  302. package/src/mobile/html-text-input/{style-common.native.scss → style.scss} +16 -0
  303. package/src/mobile/keyboard-aware-flat-list/index.android.js +15 -5
  304. package/src/mobile/keyboard-aware-flat-list/index.ios.js +75 -46
  305. package/src/navigator/stories/index.js +16 -10
  306. package/src/palette-edit/index.js +37 -9
  307. package/src/palette-edit/style.scss +0 -7
  308. package/src/palette-edit/test/index.js +63 -0
  309. package/src/panel/README.md +1 -1
  310. package/src/placeholder/test/index.js +7 -0
  311. package/src/popover/README.md +7 -9
  312. package/src/popover/index.js +242 -371
  313. package/src/popover/style.scss +20 -190
  314. package/src/popover/test/__snapshots__/index.js.snap +6 -18
  315. package/src/resizable-box/resize-tooltip/utils.ts +4 -5
  316. package/src/sandbox/index.native.js +1 -1
  317. package/src/select-control/styles/select-control-styles.ts +6 -3
  318. package/src/tab-panel/style.scss +1 -1
  319. package/src/toggle-group-control/test/__snapshots__/index.js.snap +4 -10
  320. package/src/toggle-group-control/toggle-group-control/component.tsx +7 -3
  321. package/src/tooltip/index.js +8 -2
  322. package/src/tooltip/style.scss +2 -4
  323. package/src/tooltip/test/index.native.js +1 -1
  324. package/src/unit-control/test/index.tsx +84 -4
  325. package/tsconfig.json +6 -2
  326. package/tsconfig.tsbuildinfo +1 -1
  327. package/build/flyout/context.js +0 -23
  328. package/build/flyout/context.js.map +0 -1
  329. package/build/flyout/flyout/component.js +0 -106
  330. package/build/flyout/flyout/component.js.map +0 -1
  331. package/build/flyout/flyout/hook.js +0 -53
  332. package/build/flyout/flyout/hook.js.map +0 -1
  333. package/build/flyout/flyout/index.js +0 -24
  334. package/build/flyout/flyout/index.js.map +0 -1
  335. package/build/flyout/flyout-content/component.js +0 -65
  336. package/build/flyout/flyout-content/component.js.map +0 -1
  337. package/build/flyout/flyout-content/index.js +0 -16
  338. package/build/flyout/flyout-content/index.js.map +0 -1
  339. package/build/flyout/index.js +0 -16
  340. package/build/flyout/index.js.map +0 -1
  341. package/build/flyout/styles.js +0 -46
  342. package/build/flyout/styles.js.map +0 -1
  343. package/build/flyout/utils.js +0 -36
  344. package/build/flyout/utils.js.map +0 -1
  345. package/build/mobile/html-text-input/container.android.js +0 -41
  346. package/build/mobile/html-text-input/container.android.js.map +0 -1
  347. package/build/mobile/html-text-input/container.ios.js +0 -60
  348. package/build/mobile/html-text-input/container.ios.js.map +0 -1
  349. package/build/popover/utils.js +0 -322
  350. package/build/popover/utils.js.map +0 -1
  351. package/build-module/flyout/context.js +0 -11
  352. package/build-module/flyout/context.js.map +0 -1
  353. package/build-module/flyout/flyout/component.js +0 -89
  354. package/build-module/flyout/flyout/component.js.map +0 -1
  355. package/build-module/flyout/flyout/hook.js +0 -44
  356. package/build-module/flyout/flyout/hook.js.map +0 -1
  357. package/build-module/flyout/flyout/index.js +0 -3
  358. package/build-module/flyout/flyout/index.js.map +0 -1
  359. package/build-module/flyout/flyout-content/component.js +0 -51
  360. package/build-module/flyout/flyout-content/component.js.map +0 -1
  361. package/build-module/flyout/flyout-content/index.js +0 -2
  362. package/build-module/flyout/flyout-content/index.js.map +0 -1
  363. package/build-module/flyout/index.js +0 -2
  364. package/build-module/flyout/index.js.map +0 -1
  365. package/build-module/flyout/styles.js +0 -27
  366. package/build-module/flyout/styles.js.map +0 -1
  367. package/build-module/flyout/utils.js +0 -25
  368. package/build-module/flyout/utils.js.map +0 -1
  369. package/build-module/mobile/html-text-input/container.android.js +0 -29
  370. package/build-module/mobile/html-text-input/container.android.js.map +0 -1
  371. package/build-module/mobile/html-text-input/container.ios.js +0 -48
  372. package/build-module/mobile/html-text-input/container.ios.js.map +0 -1
  373. package/build-module/popover/utils.js +0 -308
  374. package/build-module/popover/utils.js.map +0 -1
  375. package/build-types/flyout/context.d.ts +0 -6
  376. package/build-types/flyout/context.d.ts.map +0 -1
  377. package/build-types/flyout/flyout/component.d.ts +0 -21
  378. package/build-types/flyout/flyout/component.d.ts.map +0 -1
  379. package/build-types/flyout/flyout/hook.d.ts +0 -270
  380. package/build-types/flyout/flyout/hook.d.ts.map +0 -1
  381. package/build-types/flyout/flyout/index.d.ts +0 -3
  382. package/build-types/flyout/flyout/index.d.ts.map +0 -1
  383. package/build-types/flyout/flyout-content/component.d.ts +0 -3
  384. package/build-types/flyout/flyout-content/component.d.ts.map +0 -1
  385. package/build-types/flyout/flyout-content/index.d.ts +0 -2
  386. package/build-types/flyout/flyout-content/index.d.ts.map +0 -1
  387. package/build-types/flyout/index.d.ts +0 -2
  388. package/build-types/flyout/index.d.ts.map +0 -1
  389. package/build-types/flyout/styles.d.ts +0 -22
  390. package/build-types/flyout/styles.d.ts.map +0 -1
  391. package/build-types/flyout/types.d.ts +0 -80
  392. package/build-types/flyout/types.d.ts.map +0 -1
  393. package/build-types/flyout/utils.d.ts +0 -8
  394. package/build-types/flyout/utils.d.ts.map +0 -1
  395. package/build-types/popover/utils.d.ts +0 -70
  396. package/build-types/popover/utils.d.ts.map +0 -1
  397. package/src/button-group/index.js +0 -17
  398. package/src/button-group/stories/index.js +0 -21
  399. package/src/date-time/stories/date.js +0 -17
  400. package/src/date-time/stories/index.js +0 -91
  401. package/src/date-time/stories/time.js +0 -32
  402. package/src/date-time/utils.js +0 -18
  403. package/src/flyout/context.js +0 -10
  404. package/src/flyout/flyout/README.md +0 -98
  405. package/src/flyout/flyout/component.js +0 -111
  406. package/src/flyout/flyout/hook.js +0 -45
  407. package/src/flyout/flyout/index.js +0 -2
  408. package/src/flyout/flyout-content/component.js +0 -53
  409. package/src/flyout/flyout-content/index.js +0 -1
  410. package/src/flyout/index.js +0 -1
  411. package/src/flyout/stories/index.js +0 -24
  412. package/src/flyout/styles.ts +0 -41
  413. package/src/flyout/test/__snapshots__/index.js.snap +0 -186
  414. package/src/flyout/test/index.js +0 -103
  415. package/src/flyout/types.ts +0 -84
  416. package/src/flyout/utils.js +0 -23
  417. package/src/mobile/html-text-input/container.android.js +0 -23
  418. package/src/mobile/html-text-input/container.ios.js +0 -50
  419. package/src/popover/test/utils.js +0 -304
  420. package/src/popover/utils.js +0 -396
package/src/index.js CHANGED
@@ -71,7 +71,6 @@ export { DuotoneSwatch, DuotonePicker } from './duotone-picker';
71
71
  export { Elevation as __experimentalElevation } from './elevation';
72
72
  export { default as ExternalLink } from './external-link';
73
73
  export { Flex, FlexBlock, FlexItem } from './flex';
74
- export { Flyout as __experimentalFlyout } from './flyout';
75
74
  export { default as FocalPointPicker } from './focal-point-picker';
76
75
  export { default as FocusableIframe } from './focusable-iframe';
77
76
  export { default as FontSizePicker } from './font-size-picker';
@@ -61,6 +61,7 @@ export {
61
61
  filterUnitsWithSettings as filterUnitsWithSettings,
62
62
  } from './unit-control/utils';
63
63
  export { default as Disabled } from './disabled';
64
+ export { default as Draggable, DraggableTrigger } from './draggable';
64
65
 
65
66
  // Higher-Order Components.
66
67
  export { default as withConstrainedTabbing } from './higher-order/with-constrained-tabbing';
@@ -21,7 +21,7 @@ import { useCx } from '../../utils';
21
21
  import { ItemGroup, Item } from '..';
22
22
  import Button from '../../button';
23
23
  import { FlexItem, FlexBlock } from '../../flex';
24
- import { Flyout } from '../../flyout';
24
+ import Dropdown from '../../dropdown';
25
25
  import { HStack } from '../../h-stack';
26
26
  import Icon from '../../icon';
27
27
  import { Text } from '../../text';
@@ -90,23 +90,27 @@ export const _default = () => {
90
90
  };
91
91
 
92
92
  export const dropdown = () => (
93
- <Flyout
94
- style={ { width: '350px' } }
95
- trigger={ <Button>Open Popover</Button> }
96
- >
97
- <ItemGroup style={ { padding: 4 } }>
98
- <Item>Code is Poetry (no click handlers)</Item>
99
- <Item onClick={ () => alert( 'WordPress.org' ) }>
100
- Code is Poetry Click me!
101
- </Item>
102
- <Item onClick={ () => alert( 'WordPress.org' ) }>
103
- Code is Poetry — Click me!
104
- </Item>
105
- <Item onClick={ () => alert( 'WordPress.org' ) }>
106
- Code is Poetry — Click me!
107
- </Item>
108
- </ItemGroup>
109
- </Flyout>
93
+ <Dropdown
94
+ renderToggle={ ( { isOpen, onToggle } ) => (
95
+ <Button onClick={ onToggle } aria-expanded={ isOpen }>
96
+ Open Popover
97
+ </Button>
98
+ ) }
99
+ renderContent={ () => (
100
+ <ItemGroup style={ { minWidth: 350, padding: 4 } }>
101
+ <Item>Code is Poetry (no click handlers)</Item>
102
+ <Item onClick={ () => alert( 'WordPress.org' ) }>
103
+ Code is Poetry — Click me!
104
+ </Item>
105
+ <Item onClick={ () => alert( 'WordPress.org' ) }>
106
+ Code is Poetry — Click me!
107
+ </Item>
108
+ <Item onClick={ () => alert( 'WordPress.org' ) }>
109
+ Code is Poetry — Click me!
110
+ </Item>
111
+ </ItemGroup>
112
+ ) }
113
+ />
110
114
  );
111
115
 
112
116
  const SimpleColorSwatch = ( { color, style } ) => (
@@ -69,7 +69,7 @@ const BottomSheetNavigationScreen = ( {
69
69
  * Ideally, we refactor onHandleHardwareButtonPress to manage multiple
70
70
  * callbacks triggered based upon which screen is currently active.
71
71
  *
72
- * Related: https://git.io/JD2no
72
+ * Related: https://github.com/WordPress/gutenberg/pull/36328#discussion_r768897546
73
73
  */
74
74
  }, [] )
75
75
  );
@@ -108,7 +108,7 @@ it( 'animates height transitioning from full-screen to non-full-screen', async (
108
108
  );
109
109
  // Navigate to screen 1
110
110
  fireEvent.press(
111
- // Use custom waitFor due to https://git.io/JYYGE
111
+ // Use custom waitFor due to https://github.com/callstack/react-native-testing-library/issues/379
112
112
  await waitFor( () => screen.getByText( /test-screen-2/ ) )
113
113
  );
114
114
  // Await navigation screen to allow async state updates to complete
@@ -148,7 +148,7 @@ class BottomSheet extends Component {
148
148
  // TODO: Reinstate animations, possibly replacing `LayoutAnimation` with
149
149
  // more nuanced `Animated` usage or replacing our custom `BottomSheet`
150
150
  // with `@gorhom/bottom-sheet`. This animation was disabled to avoid a
151
- // preexisting bug: https://git.io/JMPCV
151
+ // preexisting bug: https://github.com/WordPress/gutenberg/issues/30562
152
152
  // this.performRegularLayoutAnimation( {
153
153
  // useLastLayoutAnimation: false,
154
154
  // } );.
@@ -57,11 +57,16 @@ const BottomSheetSelectControl = ( {
57
57
  value={ selectedOption.label }
58
58
  onPress={ openSubSheet }
59
59
  accessibilityRole={ 'button' }
60
- accessibilityLabel={ selectedOption.label }
60
+ accessibilityLabel={ sprintf(
61
+ // translators: %1$s: Select control button label e.g. "Button width". %2$s: Select control option value e.g: "Auto, 25%".
62
+ __( '%1$s. Currently selected: %2$s' ),
63
+ label,
64
+ selectedOption.label
65
+ ) }
61
66
  accessibilityHint={ sprintf(
62
67
  // translators: %s: Select control button label e.g. "Button width"
63
68
  __( 'Navigates to select %s' ),
64
- selectedOption.label
69
+ label
65
70
  ) }
66
71
  >
67
72
  <Icon icon={ chevronRight }></Icon>
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * External dependencies
3
3
  */
4
- import { TextInput } from 'react-native';
4
+ import { ScrollView, TextInput } from 'react-native';
5
5
 
6
6
  /**
7
7
  * WordPress dependencies
@@ -20,7 +20,7 @@ import {
20
20
  /**
21
21
  * Internal dependencies
22
22
  */
23
- import HTMLInputContainer from './container';
23
+ import KeyboardAvoidingView from '../keyboard-avoiding-view';
24
24
  import styles from './style.scss';
25
25
 
26
26
  export class HTMLTextInput extends Component {
@@ -73,7 +73,13 @@ export class HTMLTextInput extends Component {
73
73
  }
74
74
 
75
75
  render() {
76
- const { getStylesFromColorScheme, style } = this.props;
76
+ const {
77
+ editTitle,
78
+ getStylesFromColorScheme,
79
+ parentHeight,
80
+ style,
81
+ title,
82
+ } = this.props;
77
83
  const titleStyle = [
78
84
  styles.htmlViewTitle,
79
85
  style?.text && { color: style.text },
@@ -90,32 +96,42 @@ export class HTMLTextInput extends Component {
90
96
  ...( style?.text && { color: style.text } ),
91
97
  };
92
98
  return (
93
- <HTMLInputContainer parentHeight={ this.props.parentHeight }>
94
- <TextInput
95
- autoCorrect={ false }
96
- accessibilityLabel="html-view-title"
97
- textAlignVertical="center"
98
- numberOfLines={ 1 }
99
- style={ titleStyle }
100
- value={ this.props.title }
101
- placeholder={ __( 'Add title' ) }
102
- placeholderTextColor={ placeholderStyle.color }
103
- onChangeText={ this.props.editTitle }
104
- />
105
- <TextInput
106
- autoCorrect={ false }
107
- accessibilityLabel="html-view-content"
108
- textAlignVertical="top"
109
- multiline
110
- style={ htmlStyle }
111
- value={ this.state.value }
112
- onChangeText={ this.edit }
113
- onBlur={ this.stopEditing }
114
- placeholder={ __( 'Start writing…' ) }
115
- placeholderTextColor={ placeholderStyle.color }
116
- scrollEnabled={ HTMLInputContainer.scrollEnabled }
117
- />
118
- </HTMLInputContainer>
99
+ <KeyboardAvoidingView
100
+ style={ styles.keyboardAvoidingView }
101
+ parentHeight={ parentHeight }
102
+ >
103
+ <ScrollView style={ styles.scrollView }>
104
+ <TextInput
105
+ autoCorrect={ false }
106
+ accessibilityLabel="html-view-title"
107
+ textAlignVertical="center"
108
+ numberOfLines={ 1 }
109
+ style={ titleStyle }
110
+ value={ title }
111
+ placeholder={ __( 'Add title' ) }
112
+ placeholderTextColor={ placeholderStyle.color }
113
+ onChangeText={ editTitle }
114
+ />
115
+ <TextInput
116
+ ref={ this.contentTextInputRef }
117
+ autoCorrect={ false }
118
+ accessibilityLabel="html-view-content"
119
+ textAlignVertical="top"
120
+ multiline
121
+ style={ htmlStyle }
122
+ value={ this.state.value }
123
+ onChangeText={ this.edit }
124
+ onBlur={ this.stopEditing }
125
+ placeholder={ __( 'Start writing…' ) }
126
+ placeholderTextColor={ placeholderStyle.color }
127
+ scrollEnabled={ false }
128
+ // [Only iOS] This prop prevents the text input from
129
+ // automatically getting focused after scrolling
130
+ // content.
131
+ rejectResponderTermination={ false }
132
+ />
133
+ </ScrollView>
134
+ </KeyboardAvoidingView>
119
135
  );
120
136
  }
121
137
  }
@@ -1,22 +1,8 @@
1
- @import "./style-common.scss";
2
-
3
- .htmlView {
4
- font-family: $htmlFont;
5
- padding-left: $padding;
6
- padding-right: $padding;
7
- padding-top: $padding;
8
- padding-bottom: $padding + 16;
9
- }
1
+ @import "./style.scss";
10
2
 
11
3
  .htmlViewTitle {
12
4
  font-family: $htmlFont;
13
5
  padding-left: $padding;
14
6
  padding-right: $padding;
15
- padding-top: $padding;
16
- padding-bottom: $padding;
17
7
  margin-top: $padding * 2;
18
8
  }
19
-
20
- .scrollView {
21
- flex: 1;
22
- }
@@ -1,17 +1,4 @@
1
- @import "./style-common.scss";
2
-
3
- $title-height: 32;
4
-
5
- .htmlView {
6
- font-family: $htmlFont;
7
- padding-left: $padding;
8
- padding-right: $padding;
9
- padding-bottom: $title-height + $padding;
10
- }
11
-
12
- .htmlViewDark {
13
- color: $textColorDark;
14
- }
1
+ @import "./style.scss";
15
2
 
16
3
  .htmlViewTitle {
17
4
  font-family: $htmlFont;
@@ -19,6 +6,5 @@ $title-height: 32;
19
6
  padding-right: $padding;
20
7
  padding-top: $padding;
21
8
  padding-bottom: $padding;
22
- height: $title-height;
23
9
  margin-top: $padding * 2;
24
10
  }
@@ -21,3 +21,19 @@ $textColorDark: $white;
21
21
  .placeholderDark {
22
22
  color: $gray-50;
23
23
  }
24
+
25
+ .htmlView {
26
+ font-family: $htmlFont;
27
+ padding-left: $padding;
28
+ padding-right: $padding;
29
+ padding-top: $padding;
30
+ padding-bottom: $padding + 16;
31
+ }
32
+
33
+ .htmlViewDark {
34
+ color: $textColorDark;
35
+ }
36
+
37
+ .scrollView {
38
+ flex: 1;
39
+ }
@@ -2,17 +2,27 @@
2
2
  * External dependencies
3
3
  */
4
4
  import { FlatList } from 'react-native';
5
+ import Animated, { useAnimatedScrollHandler } from 'react-native-reanimated';
5
6
 
6
7
  /**
7
8
  * Internal dependencies
8
9
  */
9
10
  import KeyboardAvoidingView from '../keyboard-avoiding-view';
10
11
 
11
- export const KeyboardAwareFlatList = ( props ) => (
12
- <KeyboardAvoidingView style={ { flex: 1 } }>
13
- <FlatList { ...props } />
14
- </KeyboardAvoidingView>
15
- );
12
+ const AnimatedFlatList = Animated.createAnimatedComponent( FlatList );
13
+
14
+ export const KeyboardAwareFlatList = ( { innerRef, onScroll, ...props } ) => {
15
+ const scrollHandler = useAnimatedScrollHandler( { onScroll } );
16
+ return (
17
+ <KeyboardAvoidingView style={ { flex: 1 } }>
18
+ <AnimatedFlatList
19
+ ref={ innerRef }
20
+ onScroll={ scrollHandler }
21
+ { ...props }
22
+ />
23
+ </KeyboardAvoidingView>
24
+ );
25
+ };
16
26
 
17
27
  KeyboardAwareFlatList.handleCaretVerticalPositionChange = () => {
18
28
  // no need to handle on Android, it is system managed
@@ -4,13 +4,20 @@
4
4
  import { KeyboardAwareScrollView } from 'react-native-keyboard-aware-scroll-view';
5
5
  import { FlatList } from 'react-native';
6
6
  import { isEqual } from 'lodash';
7
+ import Animated, {
8
+ useAnimatedScrollHandler,
9
+ useSharedValue,
10
+ } from 'react-native-reanimated';
7
11
 
8
12
  /**
9
13
  * WordPress dependencies
10
14
  */
11
- import { memo } from '@wordpress/element';
15
+ import { memo, useCallback, useRef } from '@wordpress/element';
12
16
 
13
17
  const List = memo( FlatList, isEqual );
18
+ const AnimatedKeyboardAwareScrollView = Animated.createAnimatedComponent(
19
+ KeyboardAwareScrollView
20
+ );
14
21
 
15
22
  export const KeyboardAwareFlatList = ( {
16
23
  extraScrollHeight,
@@ -19,53 +26,75 @@ export const KeyboardAwareFlatList = ( {
19
26
  autoScroll,
20
27
  scrollViewStyle,
21
28
  inputAccessoryViewHeight,
29
+ onScroll,
22
30
  ...listProps
23
- } ) => (
24
- <KeyboardAwareScrollView
25
- style={ [ { flex: 1 }, scrollViewStyle ] }
26
- keyboardDismissMode="none"
27
- enableResetScrollToCoords={ false }
28
- keyboardShouldPersistTaps="handled"
29
- extraScrollHeight={ extraScrollHeight }
30
- extraHeight={ 0 }
31
- inputAccessoryViewHeight={ inputAccessoryViewHeight }
32
- enableAutomaticScroll={ autoScroll === undefined ? false : autoScroll }
33
- ref={ ( ref ) => {
34
- this.scrollViewRef = ref;
31
+ } ) => {
32
+ const scrollViewRef = useRef();
33
+ const keyboardWillShowIndicator = useRef();
34
+
35
+ const latestContentOffsetY = useSharedValue( -1 );
36
+
37
+ const scrollHandler = useAnimatedScrollHandler( {
38
+ onScroll: ( event ) => {
39
+ const { contentOffset } = event;
40
+ latestContentOffsetY.value = contentOffset.y;
41
+ onScroll( event );
42
+ },
43
+ } );
44
+
45
+ const getRef = useCallback(
46
+ ( ref ) => {
47
+ scrollViewRef.current = ref;
35
48
  innerRef( ref );
36
- } }
37
- onKeyboardWillHide={ () => {
38
- this.keyboardWillShowIndicator = false;
39
- } }
40
- onKeyboardDidHide={ () => {
41
- setTimeout( () => {
42
- if (
43
- ! this.keyboardWillShowIndicator &&
44
- this.latestContentOffsetY !== undefined &&
45
- ! shouldPreventAutomaticScroll()
46
- ) {
47
- // Reset the content position if keyboard is still closed.
48
- if ( this.scrollViewRef ) {
49
- this.scrollViewRef.scrollToPosition(
50
- 0,
51
- this.latestContentOffsetY,
52
- true
53
- );
54
- }
55
- }
56
- }, 50 );
57
- } }
58
- onKeyboardWillShow={ () => {
59
- this.keyboardWillShowIndicator = true;
60
- } }
61
- scrollEnabled={ listProps.scrollEnabled }
62
- onScroll={ ( event ) => {
63
- this.latestContentOffsetY = event.nativeEvent.contentOffset.y;
64
- } }
65
- >
66
- <List { ...listProps } />
67
- </KeyboardAwareScrollView>
68
- );
49
+ },
50
+ [ innerRef ]
51
+ );
52
+ const onKeyboardWillHide = useCallback( () => {
53
+ keyboardWillShowIndicator.current = false;
54
+ }, [] );
55
+ const onKeyboardDidHide = useCallback( () => {
56
+ setTimeout( () => {
57
+ if (
58
+ ! keyboardWillShowIndicator.current &&
59
+ latestContentOffsetY.value !== -1 &&
60
+ ! shouldPreventAutomaticScroll()
61
+ ) {
62
+ // Reset the content position if keyboard is still closed.
63
+ scrollViewRef.current?.scrollToPosition(
64
+ 0,
65
+ latestContentOffsetY.value,
66
+ true
67
+ );
68
+ }
69
+ }, 50 );
70
+ }, [ latestContentOffsetY, shouldPreventAutomaticScroll ] );
71
+ const onKeyboardWillShow = useCallback( () => {
72
+ keyboardWillShowIndicator.current = true;
73
+ }, [] );
74
+
75
+ return (
76
+ <AnimatedKeyboardAwareScrollView
77
+ style={ [ { flex: 1 }, scrollViewStyle ] }
78
+ keyboardDismissMode="none"
79
+ enableResetScrollToCoords={ false }
80
+ keyboardShouldPersistTaps="handled"
81
+ extraScrollHeight={ extraScrollHeight }
82
+ extraHeight={ 0 }
83
+ inputAccessoryViewHeight={ inputAccessoryViewHeight }
84
+ enableAutomaticScroll={
85
+ autoScroll === undefined ? false : autoScroll
86
+ }
87
+ ref={ getRef }
88
+ onKeyboardWillHide={ onKeyboardWillHide }
89
+ onKeyboardDidHide={ onKeyboardDidHide }
90
+ onKeyboardWillShow={ onKeyboardWillShow }
91
+ scrollEnabled={ listProps.scrollEnabled }
92
+ onScroll={ scrollHandler }
93
+ >
94
+ <List { ...listProps } />
95
+ </AnimatedKeyboardAwareScrollView>
96
+ );
97
+ };
69
98
 
70
99
  KeyboardAwareFlatList.handleCaretVerticalPositionChange = (
71
100
  scrollView,
@@ -9,7 +9,7 @@ import { css } from '@emotion/react';
9
9
  import Button from '../../button';
10
10
  import { Card, CardBody, CardFooter, CardHeader } from '../../card';
11
11
  import { HStack } from '../../h-stack';
12
- import { Flyout } from '../../flyout';
12
+ import Dropdown from '../../dropdown';
13
13
  import { useCx } from '../../utils/hooks/use-cx';
14
14
  import {
15
15
  NavigatorProvider,
@@ -54,17 +54,23 @@ const MyNavigation = () => {
54
54
  Navigate to screen with sticky content.
55
55
  </NavigatorButton>
56
56
 
57
- <Flyout
58
- trigger={
59
- <Button variant="primary">
57
+ <Dropdown
58
+ renderToggle={ ( { isOpen, onToggle } ) => (
59
+ <Button
60
+ onClick={ onToggle }
61
+ aria-expanded={ isOpen }
62
+ variant="primary"
63
+ >
60
64
  Open test dialog
61
65
  </Button>
62
- }
63
- placement="bottom-start"
64
- >
65
- <CardHeader>Go</CardHeader>
66
- <CardBody>Stuff</CardBody>
67
- </Flyout>
66
+ ) }
67
+ renderContent={ () => (
68
+ <Card>
69
+ <CardHeader>Go</CardHeader>
70
+ <CardBody>Stuff</CardBody>
71
+ </Card>
72
+ ) }
73
+ />
68
74
  </HStack>
69
75
  </CardBody>
70
76
  </Card>
@@ -56,11 +56,36 @@ function NameInput( { value, onChange, label } ) {
56
56
  );
57
57
  }
58
58
 
59
- function getNameForPosition( position ) {
59
+ /**
60
+ * Returns a temporary name for a palette item in the format "Color + id".
61
+ * To ensure there are no duplicate ids, this function checks all slugs for temporary names.
62
+ * It expects slugs to be in the format: slugPrefix + color- + number.
63
+ * It then sets the id component of the new name based on the incremented id of the highest existing slug id.
64
+ *
65
+ * @param {string} elements An array of color palette items.
66
+ * @param {string} slugPrefix The slug prefix used to match the element slug.
67
+ *
68
+ * @return {string} A unique name for a palette item.
69
+ */
70
+ export function getNameForPosition( elements, slugPrefix ) {
71
+ const temporaryNameRegex = new RegExp( `^${ slugPrefix }color-([\\d]+)$` );
72
+ const position = elements.reduce( ( previousValue, currentValue ) => {
73
+ if ( typeof currentValue?.slug === 'string' ) {
74
+ const matches = currentValue?.slug.match( temporaryNameRegex );
75
+ if ( matches ) {
76
+ const id = parseInt( matches[ 1 ], 10 );
77
+ if ( id >= previousValue ) {
78
+ return id + 1;
79
+ }
80
+ }
81
+ }
82
+ return previousValue;
83
+ }, 1 );
84
+
60
85
  return sprintf(
61
86
  /* translators: %s: is a temporary id for a custom color */
62
- __( 'Color %s ' ),
63
- position + 1
87
+ __( 'Color %s' ),
88
+ position
64
89
  );
65
90
  }
66
91
 
@@ -131,7 +156,8 @@ function Option( {
131
156
  </HStack>
132
157
  { isEditing && (
133
158
  <Popover
134
- position="bottom left"
159
+ placement="left-start"
160
+ offset={ 20 }
135
161
  className="components-palette-edit__popover"
136
162
  >
137
163
  { ! isGradient && (
@@ -163,9 +189,10 @@ function Option( {
163
189
  );
164
190
  }
165
191
 
166
- function isTemporaryElement( slugPrefix, { slug, color, gradient }, index ) {
192
+ function isTemporaryElement( slugPrefix, { slug, color, gradient } ) {
193
+ const regex = new RegExp( `^${ slugPrefix }color-([\\d]+)$` );
167
194
  return (
168
- slug === slugPrefix + kebabCase( getNameForPosition( index ) ) &&
195
+ regex.test( slug ) &&
169
196
  ( ( !! color && color === DEFAULT_COLOR ) ||
170
197
  ( !! gradient && gradient === DEFAULT_GRADIENT ) )
171
198
  );
@@ -193,8 +220,7 @@ function PaletteEditListView( {
193
220
  )
194
221
  ) {
195
222
  const newElements = elementsReference.current.filter(
196
- ( element, index ) =>
197
- ! isTemporaryElement( slugPrefix, element, index )
223
+ ( element ) => ! isTemporaryElement( slugPrefix, element )
198
224
  );
199
225
  onChange( newElements.length ? newElements : undefined );
200
226
  }
@@ -309,8 +335,10 @@ export default function PaletteEdit( {
309
335
  }
310
336
  onClick={ () => {
311
337
  const tempOptionName = getNameForPosition(
312
- elementsLength
338
+ elements,
339
+ slugPrefix
313
340
  );
341
+
314
342
  onChange( [
315
343
  ...elements,
316
344
  {
@@ -1,10 +1,3 @@
1
- @include break-medium() {
2
- .components-palette-edit__popover.components-popover .components-popover__content.components-popover__content.components-popover__content {
3
- margin-right: #{ math.div($sidebar-width, 2) + $grid-unit-20 };
4
- margin-top: #{ -($grid-unit-60 + $border-width) };
5
- }
6
- }
7
-
8
1
  .components-palette-edit__popover {
9
2
  .components-custom-gradient-picker__gradient-bar {
10
3
  margin-top: 0;