@wordpress/components 23.3.1 → 23.4.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 (896) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/build/alignment-matrix-control/utils.js +4 -4
  3. package/build/alignment-matrix-control/utils.js.map +1 -1
  4. package/build/angle-picker-control/angle-circle.js +37 -29
  5. package/build/angle-picker-control/angle-circle.js.map +1 -1
  6. package/build/angle-picker-control/index.js +44 -9
  7. package/build/angle-picker-control/index.js.map +1 -1
  8. package/build/angle-picker-control/styles/angle-picker-control-styles.js +13 -13
  9. package/build/angle-picker-control/styles/angle-picker-control-styles.js.map +1 -1
  10. package/build/{base-field → angle-picker-control}/types.js +0 -0
  11. package/build/angle-picker-control/types.js.map +1 -0
  12. package/build/autocomplete/autocompleter-ui.native.js +1 -0
  13. package/build/autocomplete/autocompleter-ui.native.js.map +1 -1
  14. package/build/base-control/hooks.js +1 -1
  15. package/build/base-control/hooks.js.map +1 -1
  16. package/build/border-box-control/utils.js +1 -1
  17. package/build/border-box-control/utils.js.map +1 -1
  18. package/build/box-control/all-input-control.js +2 -2
  19. package/build/box-control/all-input-control.js.map +1 -1
  20. package/build/box-control/axial-input-controls.js +1 -1
  21. package/build/box-control/axial-input-controls.js.map +1 -1
  22. package/build/box-control/icon.js.map +1 -1
  23. package/build/box-control/index.js +32 -3
  24. package/build/box-control/index.js.map +1 -1
  25. package/build/box-control/input-controls.js +5 -5
  26. package/build/box-control/input-controls.js.map +1 -1
  27. package/build/box-control/linked-button.js.map +1 -1
  28. package/build/box-control/styles/box-control-icon-styles.js +28 -28
  29. package/build/box-control/styles/box-control-icon-styles.js.map +1 -1
  30. package/build/box-control/styles/box-control-styles.js +23 -23
  31. package/build/box-control/styles/box-control-styles.js.map +1 -1
  32. package/build/box-control/styles/box-control-visualizer-styles.js +19 -19
  33. package/build/box-control/styles/box-control-visualizer-styles.js.map +1 -1
  34. package/build/box-control/types.js +6 -0
  35. package/build/box-control/types.js.map +1 -0
  36. package/build/box-control/unit-control.js.map +1 -1
  37. package/build/box-control/utils.js +23 -23
  38. package/build/box-control/utils.js.map +1 -1
  39. package/build/color-palette/index.js +15 -7
  40. package/build/color-palette/index.js.map +1 -1
  41. package/build/color-palette/utils.js +12 -4
  42. package/build/color-palette/utils.js.map +1 -1
  43. package/build/combobox-control/index.js +68 -12
  44. package/build/combobox-control/index.js.map +1 -1
  45. package/build/combobox-control/styles.js +2 -2
  46. package/build/combobox-control/styles.js.map +1 -1
  47. package/build/combobox-control/types.js +6 -0
  48. package/build/combobox-control/types.js.map +1 -0
  49. package/build/custom-gradient-picker/index.js +0 -1
  50. package/build/custom-gradient-picker/index.js.map +1 -1
  51. package/build/custom-select-control/index.js +7 -0
  52. package/build/custom-select-control/index.js.map +1 -1
  53. package/build/date-time/time/index.js +1 -1
  54. package/build/date-time/time/index.js.map +1 -1
  55. package/build/date-time/utils.js +1 -1
  56. package/build/date-time/utils.js.map +1 -1
  57. package/build/draggable/index.js +2 -2
  58. package/build/draggable/index.js.map +1 -1
  59. package/build/focal-point-picker/utils.js +3 -3
  60. package/build/focal-point-picker/utils.js.map +1 -1
  61. package/build/font-size-picker/utils.js +2 -2
  62. package/build/font-size-picker/utils.js.map +1 -1
  63. package/build/gradient-picker/index.js +9 -4
  64. package/build/gradient-picker/index.js.map +1 -1
  65. package/build/index.js +16 -10
  66. package/build/index.js.map +1 -1
  67. package/build/input-control/reducer/reducer.js +5 -5
  68. package/build/input-control/reducer/reducer.js.map +1 -1
  69. package/build/input-control/utils.js +1 -1
  70. package/build/input-control/utils.js.map +1 -1
  71. package/build/menu-items-choice/index.js +40 -3
  72. package/build/menu-items-choice/index.js.map +1 -1
  73. package/build/menu-items-choice/types.js +6 -0
  74. package/build/menu-items-choice/types.js.map +1 -0
  75. package/build/modal/index.js +41 -3
  76. package/build/modal/index.js.map +1 -1
  77. package/build/navigator/context.js +5 -1
  78. package/build/navigator/context.js.map +1 -1
  79. package/build/navigator/index.js +8 -0
  80. package/build/navigator/index.js.map +1 -1
  81. package/build/navigator/navigator-back-button/hook.js +11 -3
  82. package/build/navigator/navigator-back-button/hook.js.map +1 -1
  83. package/build/navigator/navigator-provider/component.js +119 -11
  84. package/build/navigator/navigator-provider/component.js.map +1 -1
  85. package/build/navigator/navigator-screen/component.js +18 -7
  86. package/build/navigator/navigator-screen/component.js.map +1 -1
  87. package/build/navigator/navigator-to-parent-button/component.js +75 -0
  88. package/build/navigator/navigator-to-parent-button/component.js.map +1 -0
  89. package/build/navigator/navigator-to-parent-button/index.js +16 -0
  90. package/build/navigator/navigator-to-parent-button/index.js.map +1 -0
  91. package/build/navigator/use-navigator.js +6 -2
  92. package/build/navigator/use-navigator.js.map +1 -1
  93. package/build/navigator/utils/router.js +57 -0
  94. package/build/navigator/utils/router.js.map +1 -0
  95. package/build/palette-edit/index.js +4 -1
  96. package/build/palette-edit/index.js.map +1 -1
  97. package/build/panel/header.js +9 -0
  98. package/build/panel/header.js.map +1 -1
  99. package/build/panel/index.js +21 -3
  100. package/build/panel/index.js.map +1 -1
  101. package/build/panel/row.js +10 -4
  102. package/build/panel/row.js.map +1 -1
  103. package/build/panel/types.js +6 -0
  104. package/build/panel/types.js.map +1 -0
  105. package/build/popover/index.js +15 -3
  106. package/build/popover/index.js.map +1 -1
  107. package/build/popover/overlay-middlewares.js +46 -0
  108. package/build/popover/overlay-middlewares.js.map +1 -0
  109. package/build/popover/utils.js +45 -6
  110. package/build/popover/utils.js.map +1 -1
  111. package/build/private-apis.js +35 -0
  112. package/build/private-apis.js.map +1 -0
  113. package/build/query-controls/terms.js +1 -1
  114. package/build/query-controls/terms.js.map +1 -1
  115. package/build/range-control/utils.js +4 -4
  116. package/build/range-control/utils.js.map +1 -1
  117. package/build/resizable-box/resize-tooltip/styles/resize-tooltip.styles.js +12 -12
  118. package/build/resizable-box/resize-tooltip/styles/resize-tooltip.styles.js.map +1 -1
  119. package/build/resizable-box/resize-tooltip/utils.js +14 -14
  120. package/build/resizable-box/resize-tooltip/utils.js.map +1 -1
  121. package/build/select-control/index.js +1 -1
  122. package/build/select-control/index.js.map +1 -1
  123. package/build/select-control/styles/select-control-styles.js +38 -25
  124. package/build/select-control/styles/select-control-styles.js.map +1 -1
  125. package/build/snackbar/index.js +2 -2
  126. package/build/snackbar/index.js.map +1 -1
  127. package/build/toolbar/toolbar/index.js +25 -14
  128. package/build/toolbar/toolbar/index.js.map +1 -1
  129. package/build/toolbar/toolbar/toolbar-container.js +5 -4
  130. package/build/toolbar/toolbar/toolbar-container.js.map +1 -1
  131. package/build/toolbar/toolbar/types.js +6 -0
  132. package/build/toolbar/toolbar/types.js.map +1 -0
  133. package/build/toolbar/toolbar-button/index.js +2 -0
  134. package/build/toolbar/toolbar-button/index.js.map +1 -1
  135. package/build/toolbar/toolbar-button/toolbar-button-container.js +1 -0
  136. package/build/toolbar/toolbar-button/toolbar-button-container.js.map +1 -1
  137. package/build/toolbar/toolbar-context/index.js +2 -0
  138. package/build/toolbar/toolbar-context/index.js.map +1 -1
  139. package/build/toolbar/toolbar-dropdown-menu/index.js +2 -0
  140. package/build/toolbar/toolbar-dropdown-menu/index.js.map +1 -1
  141. package/build/toolbar/toolbar-group/index.js +2 -0
  142. package/build/toolbar/toolbar-group/index.js.map +1 -1
  143. package/build/toolbar/toolbar-group/toolbar-group-collapsed.js +2 -0
  144. package/build/toolbar/toolbar-group/toolbar-group-collapsed.js.map +1 -1
  145. package/build/toolbar/toolbar-group/toolbar-group-container.js +1 -0
  146. package/build/toolbar/toolbar-group/toolbar-group-container.js.map +1 -1
  147. package/build/toolbar/toolbar-item/index.js +2 -0
  148. package/build/toolbar/toolbar-item/index.js.map +1 -1
  149. package/build/tools-panel/tools-panel/component.js +61 -5
  150. package/build/tools-panel/tools-panel/component.js.map +1 -1
  151. package/build/tools-panel/tools-panel/hook.js +8 -6
  152. package/build/tools-panel/tools-panel/hook.js.map +1 -1
  153. package/build/tools-panel/tools-panel-header/component.js +2 -1
  154. package/build/tools-panel/tools-panel-header/component.js.map +1 -1
  155. package/build/tools-panel/tools-panel-header/hook.js +2 -0
  156. package/build/tools-panel/tools-panel-header/hook.js.map +1 -1
  157. package/build/tools-panel/tools-panel-item/component.js +5 -4
  158. package/build/tools-panel/tools-panel-item/component.js.map +1 -1
  159. package/build/tools-panel/tools-panel-item/hook.js +24 -13
  160. package/build/tools-panel/tools-panel-item/hook.js.map +1 -1
  161. package/build/tree-grid/cell.js +15 -4
  162. package/build/tree-grid/cell.js.map +1 -1
  163. package/build/tree-grid/index.js +81 -19
  164. package/build/tree-grid/index.js.map +1 -1
  165. package/build/tree-grid/item.js +14 -3
  166. package/build/tree-grid/item.js.map +1 -1
  167. package/build/tree-grid/roving-tab-index-context.js +1 -1
  168. package/build/tree-grid/roving-tab-index-context.js.map +1 -1
  169. package/build/tree-grid/roving-tab-index-item.js +13 -6
  170. package/build/tree-grid/roving-tab-index-item.js.map +1 -1
  171. package/build/tree-grid/roving-tab-index.js +0 -3
  172. package/build/tree-grid/roving-tab-index.js.map +1 -1
  173. package/build/tree-grid/row.js +20 -18
  174. package/build/tree-grid/row.js.map +1 -1
  175. package/build/tree-grid/types.js +6 -0
  176. package/build/tree-grid/types.js.map +1 -0
  177. package/build/ui/context/context-connect.js +7 -7
  178. package/build/ui/context/context-connect.js.map +1 -1
  179. package/build/ui/context/get-styled-class-name-from-key.js +1 -1
  180. package/build/ui/context/get-styled-class-name-from-key.js.map +1 -1
  181. package/build/ui/utils/get-valid-children.js +1 -1
  182. package/build/ui/utils/get-valid-children.js.map +1 -1
  183. package/build/ui/utils/space.js +1 -1
  184. package/build/ui/utils/space.js.map +1 -1
  185. package/build/unit-control/index.js +2 -2
  186. package/build/unit-control/index.js.map +1 -1
  187. package/build/unit-control/utils.js +20 -20
  188. package/build/unit-control/utils.js.map +1 -1
  189. package/build/utils/events.js +4 -4
  190. package/build/utils/events.js.map +1 -1
  191. package/build/utils/hooks/use-controlled-state.js +2 -2
  192. package/build/utils/hooks/use-controlled-state.js.map +1 -1
  193. package/build/utils/hooks/use-controlled-value.js +4 -4
  194. package/build/utils/hooks/use-controlled-value.js.map +1 -1
  195. package/build/utils/hooks/use-latest-ref.js +1 -1
  196. package/build/utils/hooks/use-latest-ref.js.map +1 -1
  197. package/build/utils/unit-values.js +3 -3
  198. package/build/utils/unit-values.js.map +1 -1
  199. package/build-module/alignment-matrix-control/utils.js +4 -4
  200. package/build-module/alignment-matrix-control/utils.js.map +1 -1
  201. package/build-module/angle-picker-control/angle-circle.js +37 -29
  202. package/build-module/angle-picker-control/angle-circle.js.map +1 -1
  203. package/build-module/angle-picker-control/index.js +42 -8
  204. package/build-module/angle-picker-control/index.js.map +1 -1
  205. package/build-module/angle-picker-control/styles/angle-picker-control-styles.js +13 -13
  206. package/build-module/angle-picker-control/styles/angle-picker-control-styles.js.map +1 -1
  207. package/build-module/{base-field → angle-picker-control}/types.js +0 -0
  208. package/build-module/{base-field → angle-picker-control}/types.js.map +0 -0
  209. package/build-module/autocomplete/autocompleter-ui.native.js +1 -0
  210. package/build-module/autocomplete/autocompleter-ui.native.js.map +1 -1
  211. package/build-module/base-control/hooks.js +1 -1
  212. package/build-module/base-control/hooks.js.map +1 -1
  213. package/build-module/border-box-control/utils.js +1 -1
  214. package/build-module/border-box-control/utils.js.map +1 -1
  215. package/build-module/box-control/all-input-control.js +2 -2
  216. package/build-module/box-control/all-input-control.js.map +1 -1
  217. package/build-module/box-control/axial-input-controls.js +1 -1
  218. package/build-module/box-control/axial-input-controls.js.map +1 -1
  219. package/build-module/box-control/icon.js.map +1 -1
  220. package/build-module/box-control/index.js +31 -3
  221. package/build-module/box-control/index.js.map +1 -1
  222. package/build-module/box-control/input-controls.js +5 -5
  223. package/build-module/box-control/input-controls.js.map +1 -1
  224. package/build-module/box-control/linked-button.js.map +1 -1
  225. package/build-module/box-control/styles/box-control-icon-styles.js +28 -28
  226. package/build-module/box-control/styles/box-control-icon-styles.js.map +1 -1
  227. package/build-module/box-control/styles/box-control-styles.js +23 -23
  228. package/build-module/box-control/styles/box-control-styles.js.map +1 -1
  229. package/build-module/box-control/styles/box-control-visualizer-styles.js +19 -19
  230. package/build-module/box-control/styles/box-control-visualizer-styles.js.map +1 -1
  231. package/build-module/box-control/types.js +2 -0
  232. package/{build/base-field → build-module/box-control}/types.js.map +0 -0
  233. package/build-module/box-control/unit-control.js.map +1 -1
  234. package/build-module/box-control/utils.js +23 -23
  235. package/build-module/box-control/utils.js.map +1 -1
  236. package/build-module/color-palette/index.js +16 -8
  237. package/build-module/color-palette/index.js.map +1 -1
  238. package/build-module/color-palette/utils.js +12 -4
  239. package/build-module/color-palette/utils.js.map +1 -1
  240. package/build-module/combobox-control/index.js +68 -12
  241. package/build-module/combobox-control/index.js.map +1 -1
  242. package/build-module/combobox-control/styles.js +2 -2
  243. package/build-module/combobox-control/styles.js.map +1 -1
  244. package/build-module/combobox-control/types.js +2 -0
  245. package/build-module/{resizable-box/styles/resizable-box.styles.js.map → combobox-control/types.js.map} +0 -0
  246. package/build-module/custom-gradient-picker/index.js +0 -1
  247. package/build-module/custom-gradient-picker/index.js.map +1 -1
  248. package/build-module/custom-select-control/index.js +5 -0
  249. package/build-module/custom-select-control/index.js.map +1 -1
  250. package/build-module/date-time/time/index.js +1 -1
  251. package/build-module/date-time/time/index.js.map +1 -1
  252. package/build-module/date-time/utils.js +1 -1
  253. package/build-module/date-time/utils.js.map +1 -1
  254. package/build-module/draggable/index.js +2 -2
  255. package/build-module/draggable/index.js.map +1 -1
  256. package/build-module/focal-point-picker/utils.js +3 -3
  257. package/build-module/focal-point-picker/utils.js.map +1 -1
  258. package/build-module/font-size-picker/utils.js +2 -2
  259. package/build-module/font-size-picker/utils.js.map +1 -1
  260. package/build-module/gradient-picker/index.js +9 -4
  261. package/build-module/gradient-picker/index.js.map +1 -1
  262. package/build-module/index.js +5 -4
  263. package/build-module/index.js.map +1 -1
  264. package/build-module/input-control/reducer/reducer.js +5 -5
  265. package/build-module/input-control/reducer/reducer.js.map +1 -1
  266. package/build-module/input-control/utils.js +1 -1
  267. package/build-module/input-control/utils.js.map +1 -1
  268. package/build-module/menu-items-choice/index.js +40 -4
  269. package/build-module/menu-items-choice/index.js.map +1 -1
  270. package/build-module/menu-items-choice/types.js +2 -0
  271. package/{build/resizable-box/styles/resizable-box.styles.js.map → build-module/menu-items-choice/types.js.map} +0 -0
  272. package/build-module/modal/index.js +41 -4
  273. package/build-module/modal/index.js.map +1 -1
  274. package/build-module/navigator/context.js +5 -1
  275. package/build-module/navigator/context.js.map +1 -1
  276. package/build-module/navigator/index.js +1 -0
  277. package/build-module/navigator/index.js.map +1 -1
  278. package/build-module/navigator/navigator-back-button/hook.js +11 -3
  279. package/build-module/navigator/navigator-back-button/hook.js.map +1 -1
  280. package/build-module/navigator/navigator-provider/component.js +117 -12
  281. package/build-module/navigator/navigator-provider/component.js.map +1 -1
  282. package/build-module/navigator/navigator-screen/component.js +20 -9
  283. package/build-module/navigator/navigator-screen/component.js.map +1 -1
  284. package/build-module/navigator/navigator-to-parent-button/component.js +61 -0
  285. package/build-module/navigator/navigator-to-parent-button/component.js.map +1 -0
  286. package/build-module/navigator/navigator-to-parent-button/index.js +2 -0
  287. package/build-module/navigator/navigator-to-parent-button/index.js.map +1 -0
  288. package/build-module/navigator/use-navigator.js +6 -2
  289. package/build-module/navigator/use-navigator.js.map +1 -1
  290. package/build-module/navigator/utils/router.js +51 -0
  291. package/build-module/navigator/utils/router.js.map +1 -0
  292. package/build-module/palette-edit/index.js +4 -1
  293. package/build-module/palette-edit/index.js.map +1 -1
  294. package/build-module/panel/header.js +9 -0
  295. package/build-module/panel/header.js.map +1 -1
  296. package/build-module/panel/index.js +20 -2
  297. package/build-module/panel/index.js.map +1 -1
  298. package/build-module/panel/row.js +9 -3
  299. package/build-module/panel/row.js.map +1 -1
  300. package/build-module/panel/types.js +2 -0
  301. package/build-module/panel/types.js.map +1 -0
  302. package/build-module/popover/index.js +14 -4
  303. package/build-module/popover/index.js.map +1 -1
  304. package/build-module/popover/overlay-middlewares.js +38 -0
  305. package/build-module/popover/overlay-middlewares.js.map +1 -0
  306. package/build-module/popover/utils.js +41 -5
  307. package/build-module/popover/utils.js.map +1 -1
  308. package/build-module/private-apis.js +20 -0
  309. package/build-module/private-apis.js.map +1 -0
  310. package/build-module/query-controls/terms.js +1 -1
  311. package/build-module/query-controls/terms.js.map +1 -1
  312. package/build-module/range-control/utils.js +4 -4
  313. package/build-module/range-control/utils.js.map +1 -1
  314. package/build-module/resizable-box/resize-tooltip/styles/resize-tooltip.styles.js +12 -12
  315. package/build-module/resizable-box/resize-tooltip/styles/resize-tooltip.styles.js.map +1 -1
  316. package/build-module/resizable-box/resize-tooltip/utils.js +14 -14
  317. package/build-module/resizable-box/resize-tooltip/utils.js.map +1 -1
  318. package/build-module/select-control/index.js +1 -1
  319. package/build-module/select-control/index.js.map +1 -1
  320. package/build-module/select-control/styles/select-control-styles.js +38 -25
  321. package/build-module/select-control/styles/select-control-styles.js.map +1 -1
  322. package/build-module/snackbar/index.js +2 -2
  323. package/build-module/snackbar/index.js.map +1 -1
  324. package/build-module/toolbar/toolbar/index.js +25 -13
  325. package/build-module/toolbar/toolbar/index.js.map +1 -1
  326. package/build-module/toolbar/toolbar/toolbar-container.js +4 -3
  327. package/build-module/toolbar/toolbar/toolbar-container.js.map +1 -1
  328. package/build-module/toolbar/toolbar/types.js +2 -0
  329. package/build-module/toolbar/toolbar/types.js.map +1 -0
  330. package/build-module/toolbar/toolbar-button/index.js +1 -0
  331. package/build-module/toolbar/toolbar-button/index.js.map +1 -1
  332. package/build-module/toolbar/toolbar-button/toolbar-button-container.js +1 -0
  333. package/build-module/toolbar/toolbar-button/toolbar-button-container.js.map +1 -1
  334. package/build-module/toolbar/toolbar-context/index.js +2 -0
  335. package/build-module/toolbar/toolbar-context/index.js.map +1 -1
  336. package/build-module/toolbar/toolbar-dropdown-menu/index.js +1 -0
  337. package/build-module/toolbar/toolbar-dropdown-menu/index.js.map +1 -1
  338. package/build-module/toolbar/toolbar-group/index.js +1 -0
  339. package/build-module/toolbar/toolbar-group/index.js.map +1 -1
  340. package/build-module/toolbar/toolbar-group/toolbar-group-collapsed.js +1 -0
  341. package/build-module/toolbar/toolbar-group/toolbar-group-collapsed.js.map +1 -1
  342. package/build-module/toolbar/toolbar-group/toolbar-group-container.js +1 -0
  343. package/build-module/toolbar/toolbar-group/toolbar-group-container.js.map +1 -1
  344. package/build-module/toolbar/toolbar-item/index.js +1 -0
  345. package/build-module/toolbar/toolbar-item/index.js.map +1 -1
  346. package/build-module/tools-panel/tools-panel/component.js +59 -4
  347. package/build-module/tools-panel/tools-panel/component.js.map +1 -1
  348. package/build-module/tools-panel/tools-panel/hook.js +8 -6
  349. package/build-module/tools-panel/tools-panel/hook.js.map +1 -1
  350. package/build-module/tools-panel/tools-panel-header/component.js +2 -1
  351. package/build-module/tools-panel/tools-panel-header/component.js.map +1 -1
  352. package/build-module/tools-panel/tools-panel-header/hook.js +2 -0
  353. package/build-module/tools-panel/tools-panel-header/hook.js.map +1 -1
  354. package/build-module/tools-panel/tools-panel-item/component.js +3 -3
  355. package/build-module/tools-panel/tools-panel-item/component.js.map +1 -1
  356. package/build-module/tools-panel/tools-panel-item/hook.js +25 -13
  357. package/build-module/tools-panel/tools-panel-item/hook.js.map +1 -1
  358. package/build-module/tree-grid/cell.js +16 -4
  359. package/build-module/tree-grid/cell.js.map +1 -1
  360. package/build-module/tree-grid/index.js +81 -21
  361. package/build-module/tree-grid/index.js.map +1 -1
  362. package/build-module/tree-grid/item.js +14 -2
  363. package/build-module/tree-grid/item.js.map +1 -1
  364. package/build-module/tree-grid/roving-tab-index-context.js +1 -1
  365. package/build-module/tree-grid/roving-tab-index-context.js.map +1 -1
  366. package/build-module/tree-grid/roving-tab-index-item.js +11 -4
  367. package/build-module/tree-grid/roving-tab-index-item.js.map +1 -1
  368. package/build-module/tree-grid/roving-tab-index.js +0 -3
  369. package/build-module/tree-grid/roving-tab-index.js.map +1 -1
  370. package/build-module/tree-grid/row.js +22 -17
  371. package/build-module/tree-grid/row.js.map +1 -1
  372. package/build-module/tree-grid/types.js +2 -0
  373. package/build-module/tree-grid/types.js.map +1 -0
  374. package/build-module/ui/context/context-connect.js +7 -7
  375. package/build-module/ui/context/context-connect.js.map +1 -1
  376. package/build-module/ui/context/get-styled-class-name-from-key.js +1 -1
  377. package/build-module/ui/context/get-styled-class-name-from-key.js.map +1 -1
  378. package/build-module/ui/utils/get-valid-children.js +1 -1
  379. package/build-module/ui/utils/get-valid-children.js.map +1 -1
  380. package/build-module/ui/utils/space.js +1 -1
  381. package/build-module/ui/utils/space.js.map +1 -1
  382. package/build-module/unit-control/index.js +2 -2
  383. package/build-module/unit-control/index.js.map +1 -1
  384. package/build-module/unit-control/utils.js +20 -20
  385. package/build-module/unit-control/utils.js.map +1 -1
  386. package/build-module/utils/events.js +4 -4
  387. package/build-module/utils/events.js.map +1 -1
  388. package/build-module/utils/hooks/use-controlled-state.js +2 -2
  389. package/build-module/utils/hooks/use-controlled-state.js.map +1 -1
  390. package/build-module/utils/hooks/use-controlled-value.js +4 -4
  391. package/build-module/utils/hooks/use-controlled-value.js.map +1 -1
  392. package/build-module/utils/hooks/use-latest-ref.js +1 -1
  393. package/build-module/utils/hooks/use-latest-ref.js.map +1 -1
  394. package/build-module/utils/unit-values.js +3 -3
  395. package/build-module/utils/unit-values.js.map +1 -1
  396. package/build-style/style-rtl.css +5 -11
  397. package/build-style/style.css +5 -11
  398. package/build-types/alignment-matrix-control/utils.d.ts +4 -4
  399. package/build-types/angle-picker-control/angle-circle.d.ts +6 -0
  400. package/build-types/angle-picker-control/angle-circle.d.ts.map +1 -0
  401. package/build-types/angle-picker-control/index.d.ts +29 -0
  402. package/build-types/angle-picker-control/index.d.ts.map +1 -0
  403. package/build-types/angle-picker-control/stories/index.d.ts +15 -0
  404. package/build-types/angle-picker-control/stories/index.d.ts.map +1 -0
  405. package/build-types/angle-picker-control/styles/angle-picker-control-styles.d.ts +20 -0
  406. package/build-types/angle-picker-control/styles/angle-picker-control-styles.d.ts.map +1 -0
  407. package/build-types/angle-picker-control/types.d.ts +26 -0
  408. package/build-types/angle-picker-control/types.d.ts.map +1 -0
  409. package/build-types/base-control/hooks.d.ts +2 -2
  410. package/build-types/border-box-control/border-box-control/component.d.ts +1 -1
  411. package/build-types/border-box-control/border-box-control/hook.d.ts +3 -3
  412. package/build-types/border-box-control/border-box-control-linked-button/hook.d.ts +2 -2
  413. package/build-types/border-box-control/border-box-control-split-controls/component.d.ts +1 -1
  414. package/build-types/border-box-control/border-box-control-split-controls/hook.d.ts +3 -3
  415. package/build-types/border-box-control/border-box-control-visualizer/hook.d.ts +2 -2
  416. package/build-types/border-box-control/stories/index.d.ts +1 -1
  417. package/build-types/{base-field → border-box-control}/test/index.d.ts +0 -0
  418. package/build-types/border-box-control/test/index.d.ts.map +1 -0
  419. package/build-types/border-box-control/test/utils.d.ts +2 -0
  420. package/build-types/border-box-control/test/utils.d.ts.map +1 -0
  421. package/build-types/border-control/border-control/hook.d.ts +2 -2
  422. package/build-types/border-control/border-control-dropdown/hook.d.ts +2 -2
  423. package/build-types/border-control/border-control-style-picker/hook.d.ts +2 -2
  424. package/build-types/box-control/all-input-control.d.ts +4 -0
  425. package/build-types/box-control/all-input-control.d.ts.map +1 -0
  426. package/build-types/box-control/axial-input-controls.d.ts +4 -0
  427. package/build-types/box-control/axial-input-controls.d.ts.map +1 -0
  428. package/build-types/box-control/icon.d.ts +8 -0
  429. package/build-types/box-control/icon.d.ts.map +1 -0
  430. package/build-types/box-control/index.d.ts +31 -0
  431. package/build-types/box-control/index.d.ts.map +1 -0
  432. package/build-types/box-control/input-controls.d.ts +4 -0
  433. package/build-types/box-control/input-controls.d.ts.map +1 -0
  434. package/build-types/box-control/linked-button.d.ts +9 -0
  435. package/build-types/box-control/linked-button.d.ts.map +1 -0
  436. package/build-types/box-control/styles/box-control-icon-styles.d.ts +42 -0
  437. package/build-types/box-control/styles/box-control-icon-styles.d.ts.map +1 -0
  438. package/build-types/box-control/styles/box-control-styles.d.ts +42 -0
  439. package/build-types/box-control/styles/box-control-styles.d.ts.map +1 -0
  440. package/build-types/box-control/styles/box-control-visualizer-styles.d.ts +46 -0
  441. package/build-types/box-control/styles/box-control-visualizer-styles.d.ts.map +1 -0
  442. package/build-types/box-control/test/index.d.ts +2 -0
  443. package/build-types/box-control/test/index.d.ts.map +1 -0
  444. package/build-types/box-control/types.d.ts +99 -0
  445. package/build-types/box-control/types.d.ts.map +1 -0
  446. package/build-types/box-control/unit-control.d.ts +4 -0
  447. package/build-types/box-control/unit-control.d.ts.map +1 -0
  448. package/build-types/box-control/utils.d.ts +84 -0
  449. package/build-types/box-control/utils.d.ts.map +1 -0
  450. package/build-types/button/deprecated.d.ts +2 -2
  451. package/build-types/button/types.d.ts +3 -1
  452. package/build-types/button/types.d.ts.map +1 -1
  453. package/build-types/card/card/hook.d.ts +2 -2
  454. package/build-types/card/card-body/hook.d.ts +2 -2
  455. package/build-types/card/card-divider/hook.d.ts +2 -2
  456. package/build-types/card/card-footer/hook.d.ts +2 -2
  457. package/build-types/card/card-header/hook.d.ts +2 -2
  458. package/build-types/card/card-media/hook.d.ts +2 -2
  459. package/build-types/color-palette/index.d.ts +3 -1
  460. package/build-types/color-palette/index.d.ts.map +1 -1
  461. package/build-types/color-palette/stories/index.d.ts +6 -2
  462. package/build-types/color-palette/stories/index.d.ts.map +1 -1
  463. package/build-types/color-palette/styles.d.ts +1 -1
  464. package/build-types/color-palette/types.d.ts +8 -0
  465. package/build-types/color-palette/types.d.ts.map +1 -1
  466. package/build-types/color-palette/utils.d.ts +8 -5
  467. package/build-types/color-palette/utils.d.ts.map +1 -1
  468. package/build-types/color-picker/styles.d.ts +7 -7
  469. package/build-types/combobox-control/index.d.ts +51 -0
  470. package/build-types/combobox-control/index.d.ts.map +1 -0
  471. package/build-types/combobox-control/stories/index.d.ts +18 -0
  472. package/build-types/combobox-control/stories/index.d.ts.map +1 -0
  473. package/build-types/combobox-control/styles.d.ts +8 -0
  474. package/build-types/combobox-control/styles.d.ts.map +1 -0
  475. package/build-types/combobox-control/test/index.d.ts +2 -0
  476. package/build-types/combobox-control/test/index.d.ts.map +1 -0
  477. package/build-types/combobox-control/types.d.ts +62 -0
  478. package/build-types/combobox-control/types.d.ts.map +1 -0
  479. package/build-types/custom-select-control/index.d.ts +1 -0
  480. package/build-types/custom-select-control/index.d.ts.map +1 -1
  481. package/build-types/date-time/date/styles.d.ts +3 -3
  482. package/build-types/date-time/date-time/styles.d.ts +3 -3
  483. package/build-types/date-time/time/styles.d.ts +8 -8
  484. package/build-types/date-time/utils.d.ts +1 -1
  485. package/build-types/elevation/hook.d.ts +2 -2
  486. package/build-types/external-link/styles/external-link-styles.d.ts +1 -1
  487. package/build-types/flex/flex/hook.d.ts +2 -2
  488. package/build-types/flex/flex-block/hook.d.ts +2 -2
  489. package/build-types/flex/flex-item/hook.d.ts +2 -2
  490. package/build-types/focal-point-picker/styles/focal-point-picker-style.d.ts +2 -2
  491. package/build-types/focal-point-picker/utils.d.ts +3 -3
  492. package/build-types/font-size-picker/utils.d.ts +2 -2
  493. package/build-types/form-token-field/styles.d.ts +1 -1
  494. package/build-types/grid/hook.d.ts +2 -2
  495. package/build-types/h-stack/component.d.ts +1 -1
  496. package/build-types/h-stack/hook.d.ts +2 -2
  497. package/build-types/heading/hook.d.ts +2 -2
  498. package/build-types/input-control/reducer/reducer.d.ts +3 -3
  499. package/build-types/input-control/styles/input-control-styles.d.ts +2 -2
  500. package/build-types/input-control/utils.d.ts +1 -1
  501. package/build-types/item-group/item/hook.d.ts +2 -2
  502. package/build-types/item-group/item-group/hook.d.ts +2 -2
  503. package/build-types/menu-items-choice/index.d.ts +38 -0
  504. package/build-types/menu-items-choice/index.d.ts.map +1 -0
  505. package/build-types/menu-items-choice/stories/index.d.ts +12 -0
  506. package/build-types/menu-items-choice/stories/index.d.ts.map +1 -0
  507. package/build-types/menu-items-choice/types.d.ts +53 -0
  508. package/build-types/menu-items-choice/types.d.ts.map +1 -0
  509. package/build-types/modal/index.d.ts.map +1 -1
  510. package/build-types/modal/types.d.ts +2 -0
  511. package/build-types/modal/types.d.ts.map +1 -1
  512. package/build-types/navigator/context.d.ts.map +1 -1
  513. package/build-types/navigator/index.d.ts +1 -0
  514. package/build-types/navigator/index.d.ts.map +1 -1
  515. package/build-types/navigator/navigator-back-button/component.d.ts +22 -3
  516. package/build-types/navigator/navigator-back-button/component.d.ts.map +1 -1
  517. package/build-types/navigator/navigator-back-button/hook.d.ts +24 -6
  518. package/build-types/navigator/navigator-back-button/hook.d.ts.map +1 -1
  519. package/build-types/navigator/navigator-button/component.d.ts +22 -3
  520. package/build-types/navigator/navigator-button/component.d.ts.map +1 -1
  521. package/build-types/navigator/navigator-button/hook.d.ts +22 -4
  522. package/build-types/navigator/navigator-button/hook.d.ts.map +1 -1
  523. package/build-types/navigator/navigator-provider/component.d.ts.map +1 -1
  524. package/build-types/navigator/navigator-screen/component.d.ts.map +1 -1
  525. package/build-types/navigator/navigator-to-parent-button/component.d.ts +27 -0
  526. package/build-types/navigator/navigator-to-parent-button/component.d.ts.map +1 -0
  527. package/build-types/navigator/navigator-to-parent-button/index.d.ts +2 -0
  528. package/build-types/navigator/navigator-to-parent-button/index.d.ts.map +1 -0
  529. package/build-types/navigator/stories/index.d.ts +1 -0
  530. package/build-types/navigator/stories/index.d.ts.map +1 -1
  531. package/build-types/navigator/test/router.d.ts +2 -0
  532. package/build-types/navigator/test/router.d.ts.map +1 -0
  533. package/build-types/navigator/types.d.ts +25 -9
  534. package/build-types/navigator/types.d.ts.map +1 -1
  535. package/build-types/navigator/use-navigator.d.ts.map +1 -1
  536. package/build-types/navigator/utils/router.d.ts +10 -0
  537. package/build-types/navigator/utils/router.d.ts.map +1 -0
  538. package/build-types/number-control/index.d.ts +2 -2
  539. package/build-types/number-control/stories/index.d.ts +2 -2
  540. package/build-types/panel/header.d.ts +13 -0
  541. package/build-types/panel/header.d.ts.map +1 -0
  542. package/build-types/panel/index.d.ts +21 -0
  543. package/build-types/panel/index.d.ts.map +1 -0
  544. package/build-types/panel/row.d.ts +12 -0
  545. package/build-types/panel/row.d.ts.map +1 -0
  546. package/build-types/panel/test/header.d.ts +2 -0
  547. package/build-types/panel/test/header.d.ts.map +1 -0
  548. package/build-types/panel/test/index.d.ts +2 -0
  549. package/build-types/{base-field → panel}/test/index.d.ts.map +1 -1
  550. package/build-types/panel/test/row.d.ts +2 -0
  551. package/build-types/panel/test/row.d.ts.map +1 -0
  552. package/build-types/panel/types.d.ts +38 -0
  553. package/build-types/panel/types.d.ts.map +1 -0
  554. package/build-types/popover/index.d.ts +1 -1
  555. package/build-types/popover/index.d.ts.map +1 -1
  556. package/build-types/popover/overlay-middlewares.d.ts +9 -0
  557. package/build-types/popover/overlay-middlewares.d.ts.map +1 -0
  558. package/build-types/popover/stories/e2e/index.d.ts +1 -1
  559. package/build-types/popover/stories/index.d.ts.map +1 -1
  560. package/build-types/popover/types.d.ts +3 -2
  561. package/build-types/popover/types.d.ts.map +1 -1
  562. package/build-types/popover/utils.d.ts +12 -4
  563. package/build-types/popover/utils.d.ts.map +1 -1
  564. package/build-types/private-apis.d.ts +4 -0
  565. package/build-types/private-apis.d.ts.map +1 -0
  566. package/build-types/query-controls/terms.d.ts +1 -1
  567. package/build-types/range-control/index.d.ts +2 -2
  568. package/build-types/range-control/styles/range-control-styles.d.ts +2 -2
  569. package/build-types/range-control/utils.d.ts +4 -4
  570. package/build-types/resizable-box/index.d.ts +1 -1
  571. package/build-types/resizable-box/resize-tooltip/index.d.ts +1 -1
  572. package/build-types/resizable-box/resize-tooltip/styles/resize-tooltip.styles.d.ts +5 -4
  573. package/build-types/resizable-box/resize-tooltip/styles/resize-tooltip.styles.d.ts.map +1 -1
  574. package/build-types/resizable-box/resize-tooltip/utils.d.ts +6 -6
  575. package/build-types/resizable-box/stories/index.d.ts +2 -2
  576. package/build-types/scrollable/hook.d.ts +2 -2
  577. package/build-types/search-control/index.d.ts +1 -1
  578. package/build-types/search-control/stories/index.d.ts +2 -2
  579. package/build-types/select-control/index.d.ts.map +1 -1
  580. package/build-types/select-control/styles/select-control-styles.d.ts +1 -1
  581. package/build-types/select-control/styles/select-control-styles.d.ts.map +1 -1
  582. package/build-types/select-control/types.d.ts +3 -1
  583. package/build-types/select-control/types.d.ts.map +1 -1
  584. package/build-types/spacer/hook.d.ts +2 -2
  585. package/build-types/spinner/index.d.ts +1 -1
  586. package/build-types/surface/hook.d.ts +2 -2
  587. package/build-types/text/hook.d.ts +2 -2
  588. package/build-types/text-control/index.d.ts +3 -3
  589. package/build-types/toolbar/index.d.ts +7 -0
  590. package/build-types/toolbar/index.d.ts.map +1 -0
  591. package/build-types/toolbar/stories/index.d.ts +14 -0
  592. package/build-types/toolbar/stories/index.d.ts.map +1 -0
  593. package/build-types/toolbar/test/index.d.ts +2 -0
  594. package/build-types/toolbar/test/index.d.ts.map +1 -0
  595. package/build-types/toolbar/test/toolbar-group.d.ts +2 -0
  596. package/build-types/toolbar/test/toolbar-group.d.ts.map +1 -0
  597. package/build-types/toolbar/toolbar/index.d.ts +25 -0
  598. package/build-types/toolbar/toolbar/index.d.ts.map +1 -0
  599. package/build-types/toolbar/toolbar/toolbar-container.d.ts +5 -0
  600. package/build-types/toolbar/toolbar/toolbar-container.d.ts.map +1 -0
  601. package/build-types/toolbar/toolbar/types.d.ts +15 -0
  602. package/build-types/toolbar/toolbar/types.d.ts.map +1 -0
  603. package/build-types/toolbar/toolbar-button/index.d.ts +12 -0
  604. package/build-types/toolbar/toolbar-button/index.d.ts.map +1 -0
  605. package/build-types/toolbar/toolbar-button/toolbar-button-container.d.ts +3 -0
  606. package/build-types/toolbar/toolbar-button/toolbar-button-container.d.ts.map +1 -0
  607. package/build-types/toolbar/toolbar-context/index.d.ts +3 -0
  608. package/build-types/toolbar/toolbar-context/index.d.ts.map +1 -0
  609. package/build-types/toolbar/toolbar-dropdown-menu/index.d.ts +3 -0
  610. package/build-types/toolbar/toolbar-dropdown-menu/index.d.ts.map +1 -0
  611. package/build-types/toolbar/toolbar-group/index.d.ts +39 -0
  612. package/build-types/toolbar/toolbar-group/index.d.ts.map +1 -0
  613. package/build-types/toolbar/toolbar-group/toolbar-group-collapsed.d.ts +7 -0
  614. package/build-types/toolbar/toolbar-group/toolbar-group-collapsed.d.ts.map +1 -0
  615. package/build-types/toolbar/toolbar-group/toolbar-group-container.d.ts +7 -0
  616. package/build-types/toolbar/toolbar-group/toolbar-group-container.d.ts.map +1 -0
  617. package/build-types/toolbar/toolbar-item/index.d.ts +7 -0
  618. package/build-types/toolbar/toolbar-item/index.d.ts.map +1 -0
  619. package/build-types/tools-panel/stories/index.d.ts +17 -0
  620. package/build-types/tools-panel/stories/index.d.ts.map +1 -0
  621. package/build-types/tools-panel/tools-panel/component.d.ts +54 -2
  622. package/build-types/tools-panel/tools-panel/component.d.ts.map +1 -1
  623. package/build-types/tools-panel/tools-panel/hook.d.ts +4 -3
  624. package/build-types/tools-panel/tools-panel/hook.d.ts.map +1 -1
  625. package/build-types/tools-panel/tools-panel-header/component.d.ts.map +1 -1
  626. package/build-types/tools-panel/tools-panel-header/hook.d.ts +4 -3
  627. package/build-types/tools-panel/tools-panel-header/hook.d.ts.map +1 -1
  628. package/build-types/tools-panel/tools-panel-item/component.d.ts +2 -2
  629. package/build-types/tools-panel/tools-panel-item/component.d.ts.map +1 -1
  630. package/build-types/tools-panel/tools-panel-item/hook.d.ts +2 -2
  631. package/build-types/tools-panel/tools-panel-item/hook.d.ts.map +1 -1
  632. package/build-types/tools-panel/types.d.ts +42 -15
  633. package/build-types/tools-panel/types.d.ts.map +1 -1
  634. package/build-types/tree-grid/cell.d.ts +13 -0
  635. package/build-types/tree-grid/cell.d.ts.map +1 -0
  636. package/build-types/tree-grid/index.d.ts +70 -0
  637. package/build-types/tree-grid/index.d.ts.map +1 -0
  638. package/build-types/tree-grid/item.d.ts +12 -0
  639. package/build-types/tree-grid/item.d.ts.map +1 -0
  640. package/build-types/tree-grid/roving-tab-index-context.d.ts +10 -0
  641. package/build-types/tree-grid/roving-tab-index-context.d.ts.map +1 -0
  642. package/build-types/tree-grid/roving-tab-index-item.d.ts +5 -0
  643. package/build-types/tree-grid/roving-tab-index-item.d.ts.map +1 -0
  644. package/build-types/tree-grid/roving-tab-index.d.ts +10 -0
  645. package/build-types/tree-grid/roving-tab-index.d.ts.map +1 -0
  646. package/build-types/tree-grid/row.d.ts +12 -0
  647. package/build-types/tree-grid/row.d.ts.map +1 -0
  648. package/build-types/tree-grid/stories/index.d.ts +13 -0
  649. package/build-types/tree-grid/stories/index.d.ts.map +1 -0
  650. package/build-types/tree-grid/test/cell.d.ts +2 -0
  651. package/build-types/tree-grid/test/cell.d.ts.map +1 -0
  652. package/build-types/tree-grid/test/index.d.ts +2 -0
  653. package/build-types/tree-grid/test/index.d.ts.map +1 -0
  654. package/build-types/tree-grid/test/roving-tab-index-item.d.ts +2 -0
  655. package/build-types/tree-grid/test/roving-tab-index-item.d.ts.map +1 -0
  656. package/build-types/tree-grid/test/roving-tab-index.d.ts +2 -0
  657. package/build-types/tree-grid/test/roving-tab-index.d.ts.map +1 -0
  658. package/build-types/tree-grid/test/row.d.ts +2 -0
  659. package/build-types/tree-grid/test/row.d.ts.map +1 -0
  660. package/build-types/tree-grid/types.d.ts +109 -0
  661. package/build-types/tree-grid/types.d.ts.map +1 -0
  662. package/build-types/truncate/hook.d.ts +2 -2
  663. package/build-types/ui/context/context-connect.d.ts +7 -7
  664. package/build-types/ui/context/get-styled-class-name-from-key.d.ts +1 -1
  665. package/build-types/ui/control-group/hook.d.ts +2 -2
  666. package/build-types/ui/control-label/hook.d.ts +2 -2
  667. package/build-types/ui/form-group/form-group.d.ts +2 -2
  668. package/build-types/ui/form-group/use-form-group.d.ts +2 -2
  669. package/build-types/ui/utils/get-valid-children.d.ts +1 -1
  670. package/build-types/ui/utils/space.d.ts +1 -1
  671. package/build-types/unit-control/index.d.ts +1 -1
  672. package/build-types/unit-control/styles/unit-control-styles.d.ts +2 -2
  673. package/build-types/unit-control/utils.d.ts +20 -20
  674. package/build-types/utils/events.d.ts +2 -2
  675. package/build-types/utils/hooks/use-controlled-state.d.ts +1 -1
  676. package/build-types/utils/hooks/use-controlled-state.d.ts.map +1 -1
  677. package/build-types/utils/hooks/use-controlled-value.d.ts +4 -4
  678. package/build-types/utils/hooks/use-latest-ref.d.ts +1 -1
  679. package/build-types/utils/unit-values.d.ts +3 -3
  680. package/build-types/v-stack/component.d.ts +2 -2
  681. package/build-types/v-stack/hook.d.ts +2 -2
  682. package/build-types/v-stack/stories/index.d.ts +2 -2
  683. package/package.json +20 -18
  684. package/src/alignment-matrix-control/utils.tsx +4 -4
  685. package/src/angle-picker-control/README.md +17 -14
  686. package/src/angle-picker-control/{angle-circle.js → angle-circle.tsx} +44 -12
  687. package/src/angle-picker-control/{index.js → index.tsx} +54 -10
  688. package/src/angle-picker-control/stories/index.tsx +57 -0
  689. package/src/angle-picker-control/styles/{angle-picker-control-styles.js → angle-picker-control-styles.tsx} +5 -1
  690. package/src/angle-picker-control/types.ts +29 -0
  691. package/src/autocomplete/autocompleter-ui.native.js +1 -0
  692. package/src/base-control/hooks.ts +1 -1
  693. package/src/border-box-control/test/{index.js → index.tsx} +76 -102
  694. package/src/border-box-control/test/{utils.js → utils.ts} +20 -0
  695. package/src/border-box-control/utils.ts +1 -1
  696. package/src/box-control/README.md +17 -26
  697. package/src/box-control/{all-input-control.js → all-input-control.tsx} +10 -6
  698. package/src/box-control/{axial-input-controls.js → axial-input-controls.tsx} +29 -24
  699. package/src/box-control/{icon.js → icon.tsx} +9 -4
  700. package/src/box-control/{index.js → index.tsx} +43 -8
  701. package/src/box-control/{input-controls.js → input-controls.tsx} +26 -16
  702. package/src/box-control/{linked-button.js → linked-button.tsx} +4 -1
  703. package/src/box-control/styles/{box-control-icon-styles.js → box-control-icon-styles.ts} +1 -1
  704. package/src/box-control/styles/{box-control-styles.js → box-control-styles.ts} +10 -2
  705. package/src/box-control/styles/{box-control-visualizer-styles.js → box-control-visualizer-styles.ts} +6 -2
  706. package/src/box-control/test/{index.js → index.tsx} +12 -9
  707. package/src/box-control/types.ts +121 -0
  708. package/src/box-control/{unit-control.js → unit-control.tsx} +9 -2
  709. package/src/box-control/{utils.js → utils.ts} +47 -38
  710. package/src/button/test/index.tsx +38 -30
  711. package/src/button/types.ts +5 -2
  712. package/src/color-palette/README.md +7 -0
  713. package/src/color-palette/index.tsx +19 -6
  714. package/src/color-palette/test/utils.ts +17 -1
  715. package/src/color-palette/types.ts +8 -0
  716. package/src/color-palette/utils.ts +12 -7
  717. package/src/combobox-control/README.md +8 -15
  718. package/src/combobox-control/{index.js → index.tsx} +91 -19
  719. package/src/combobox-control/stories/index.tsx +114 -0
  720. package/src/combobox-control/styles.ts +4 -1
  721. package/src/combobox-control/test/{index.js → index.tsx} +9 -7
  722. package/src/combobox-control/types.ts +69 -0
  723. package/src/custom-gradient-picker/index.js +0 -1
  724. package/src/custom-select-control/index.js +9 -0
  725. package/src/custom-select-control/stories/index.js +2 -2
  726. package/src/custom-select-control/test/index.js +2 -2
  727. package/src/date-time/time/index.tsx +1 -1
  728. package/src/date-time/utils.ts +1 -1
  729. package/src/dimension-control/test/__snapshots__/index.test.js.snap +4 -4
  730. package/src/draggable/index.tsx +2 -2
  731. package/src/dropdown-menu/test/index.js +3 -11
  732. package/src/focal-point-picker/utils.ts +3 -3
  733. package/src/font-size-picker/utils.ts +2 -2
  734. package/src/gradient-picker/README.md +8 -0
  735. package/src/gradient-picker/index.js +6 -1
  736. package/src/index.js +5 -2
  737. package/src/input-control/reducer/reducer.ts +5 -5
  738. package/src/input-control/utils.ts +1 -1
  739. package/src/menu-items-choice/index.tsx +83 -0
  740. package/src/menu-items-choice/stories/index.tsx +79 -0
  741. package/src/menu-items-choice/types.ts +54 -0
  742. package/src/modal/index.tsx +45 -1
  743. package/src/modal/style.scss +8 -0
  744. package/src/modal/types.ts +2 -0
  745. package/src/navigator/context.ts +4 -0
  746. package/src/navigator/index.ts +1 -0
  747. package/src/navigator/navigator-back-button/README.md +1 -17
  748. package/src/navigator/navigator-back-button/hook.ts +10 -5
  749. package/src/navigator/navigator-button/README.md +1 -1
  750. package/src/navigator/navigator-provider/README.md +25 -4
  751. package/src/navigator/navigator-provider/component.tsx +170 -14
  752. package/src/navigator/navigator-screen/component.tsx +22 -11
  753. package/src/navigator/navigator-to-parent-button/README.md +15 -0
  754. package/src/navigator/navigator-to-parent-button/component.tsx +65 -0
  755. package/src/navigator/navigator-to-parent-button/index.ts +1 -0
  756. package/src/navigator/stories/index.tsx +93 -3
  757. package/src/navigator/test/index.tsx +267 -23
  758. package/src/navigator/test/router.ts +122 -0
  759. package/src/navigator/types.ts +31 -12
  760. package/src/navigator/use-navigator.ts +4 -1
  761. package/src/navigator/utils/router.ts +49 -0
  762. package/src/palette-edit/index.js +4 -1
  763. package/src/panel/README.md +2 -2
  764. package/src/panel/header.tsx +20 -0
  765. package/src/panel/index.tsx +48 -0
  766. package/src/panel/row.tsx +37 -0
  767. package/src/panel/stories/index.js +22 -0
  768. package/src/panel/test/__snapshots__/{header.js.snap → header.tsx.snap} +0 -0
  769. package/src/panel/test/__snapshots__/{index.js.snap → index.tsx.snap} +0 -0
  770. package/src/panel/test/__snapshots__/{row.js.snap → row.tsx.snap} +0 -0
  771. package/src/panel/test/{header.js → header.tsx} +1 -1
  772. package/src/panel/test/{index.js → index.tsx} +6 -4
  773. package/src/panel/test/{row.js → row.tsx} +4 -2
  774. package/src/panel/types.ts +38 -0
  775. package/src/popover/README.md +4 -1
  776. package/src/popover/index.tsx +17 -1
  777. package/src/popover/overlay-middlewares.tsx +29 -0
  778. package/src/popover/stories/index.tsx +7 -1
  779. package/src/popover/test/index.tsx +29 -21
  780. package/src/popover/types.ts +4 -2
  781. package/src/popover/utils.ts +39 -3
  782. package/src/private-apis.js +22 -0
  783. package/src/query-controls/terms.ts +1 -1
  784. package/src/range-control/utils.ts +4 -4
  785. package/src/resizable-box/resize-tooltip/styles/{resize-tooltip.styles.js → resize-tooltip.styles.ts} +0 -0
  786. package/src/resizable-box/resize-tooltip/utils.ts +14 -14
  787. package/src/select-control/README.md +3 -1
  788. package/src/select-control/index.tsx +3 -1
  789. package/src/select-control/style.scss +0 -10
  790. package/src/select-control/styles/select-control-styles.ts +36 -22
  791. package/src/select-control/types.ts +3 -1
  792. package/src/snackbar/index.tsx +2 -2
  793. package/src/toolbar/stories/{index.js → index.tsx} +39 -26
  794. package/src/toolbar/test/{index.js → index.tsx} +0 -0
  795. package/src/toolbar/test/{toolbar-group.js → toolbar-group.tsx} +2 -2
  796. package/src/toolbar/toolbar/README.md +7 -2
  797. package/src/toolbar/toolbar/{index.js → index.tsx} +33 -12
  798. package/src/toolbar/toolbar/{toolbar-container.js → toolbar-container.tsx} +9 -2
  799. package/src/toolbar/toolbar/types.ts +15 -0
  800. package/src/toolbar/toolbar-button/index.js +2 -0
  801. package/src/toolbar/toolbar-button/toolbar-button-container.js +2 -0
  802. package/src/toolbar/toolbar-context/index.js +2 -0
  803. package/src/toolbar/toolbar-dropdown-menu/index.js +2 -0
  804. package/src/toolbar/toolbar-group/index.js +2 -0
  805. package/src/toolbar/toolbar-group/toolbar-group-collapsed.js +2 -0
  806. package/src/toolbar/toolbar-group/toolbar-group-container.js +2 -0
  807. package/src/toolbar/toolbar-item/index.js +2 -0
  808. package/src/tools-panel/stories/{index.js → index.tsx} +196 -95
  809. package/src/tools-panel/test/index.js +71 -6
  810. package/src/tools-panel/tools-panel/README.md +12 -4
  811. package/src/tools-panel/tools-panel/component.tsx +57 -3
  812. package/src/tools-panel/tools-panel/hook.ts +8 -7
  813. package/src/tools-panel/tools-panel-header/README.md +7 -0
  814. package/src/tools-panel/tools-panel-header/component.tsx +2 -1
  815. package/src/tools-panel/tools-panel-header/hook.ts +6 -4
  816. package/src/tools-panel/tools-panel-item/README.md +6 -4
  817. package/src/tools-panel/tools-panel-item/component.tsx +4 -4
  818. package/src/tools-panel/tools-panel-item/hook.ts +28 -16
  819. package/src/tools-panel/types.ts +43 -15
  820. package/src/tree-grid/README.md +18 -58
  821. package/src/tree-grid/cell.tsx +41 -0
  822. package/src/tree-grid/{index.js → index.tsx} +111 -35
  823. package/src/tree-grid/item.tsx +32 -0
  824. package/src/tree-grid/{roving-tab-index-context.js → roving-tab-index-context.ts} +9 -1
  825. package/src/tree-grid/roving-tab-index-item.tsx +50 -0
  826. package/src/tree-grid/{roving-tab-index.js → roving-tab-index.tsx} +7 -5
  827. package/src/tree-grid/row.tsx +47 -0
  828. package/src/tree-grid/stories/index.tsx +144 -0
  829. package/src/tree-grid/test/__snapshots__/{cell.js.snap → cell.tsx.snap} +0 -0
  830. package/src/tree-grid/test/__snapshots__/{index.js.snap → index.tsx.snap} +0 -0
  831. package/src/tree-grid/test/__snapshots__/{roving-tab-index-item.js.snap → roving-tab-index-item.tsx.snap} +0 -0
  832. package/src/tree-grid/test/__snapshots__/{roving-tab-index.js.snap → roving-tab-index.tsx.snap} +0 -0
  833. package/src/tree-grid/test/__snapshots__/{row.js.snap → row.tsx.snap} +0 -0
  834. package/src/tree-grid/test/{cell.js → cell.tsx} +7 -4
  835. package/src/tree-grid/test/{index.js → index.tsx} +13 -5
  836. package/src/tree-grid/test/{roving-tab-index-item.js → roving-tab-index-item.tsx} +7 -4
  837. package/src/tree-grid/test/{roving-tab-index.js → roving-tab-index.tsx} +0 -0
  838. package/src/tree-grid/test/{row.js → row.tsx} +4 -4
  839. package/src/tree-grid/types.ts +116 -0
  840. package/src/ui/context/context-connect.ts +7 -7
  841. package/src/ui/context/get-styled-class-name-from-key.ts +1 -1
  842. package/src/ui/utils/get-valid-children.ts +1 -1
  843. package/src/ui/utils/space.ts +1 -1
  844. package/src/unit-control/index.tsx +2 -2
  845. package/src/unit-control/utils.ts +20 -20
  846. package/src/utils/events.ts +4 -4
  847. package/src/utils/hooks/use-controlled-state.js +2 -2
  848. package/src/utils/hooks/use-controlled-value.ts +4 -4
  849. package/src/utils/hooks/use-latest-ref.ts +1 -1
  850. package/src/utils/unit-values.ts +3 -3
  851. package/tsconfig.json +6 -8
  852. package/tsconfig.tsbuildinfo +1 -1
  853. package/build/base-field/hook.js +0 -54
  854. package/build/base-field/hook.js.map +0 -1
  855. package/build/base-field/index.js +0 -14
  856. package/build/base-field/index.js.map +0 -1
  857. package/build/base-field/styles.js +0 -33
  858. package/build/base-field/styles.js.map +0 -1
  859. package/build/resizable-box/styles/resizable-box.styles.js +0 -2
  860. package/build-module/base-field/hook.js +0 -37
  861. package/build-module/base-field/hook.js.map +0 -1
  862. package/build-module/base-field/index.js +0 -2
  863. package/build-module/base-field/index.js.map +0 -1
  864. package/build-module/base-field/styles.js +0 -18
  865. package/build-module/base-field/styles.js.map +0 -1
  866. package/build-module/resizable-box/styles/resizable-box.styles.js +0 -2
  867. package/build-types/base-field/hook.d.ts +0 -270
  868. package/build-types/base-field/hook.d.ts.map +0 -1
  869. package/build-types/base-field/index.d.ts +0 -2
  870. package/build-types/base-field/index.d.ts.map +0 -1
  871. package/build-types/base-field/styles.d.ts +0 -6
  872. package/build-types/base-field/styles.d.ts.map +0 -1
  873. package/build-types/base-field/types.d.ts +0 -29
  874. package/build-types/base-field/types.d.ts.map +0 -1
  875. package/build-types/resizable-box/styles/resizable-box.styles.d.ts +0 -1
  876. package/build-types/resizable-box/styles/resizable-box.styles.d.ts.map +0 -1
  877. package/src/angle-picker-control/stories/index.js +0 -29
  878. package/src/base-field/README.md +0 -66
  879. package/src/base-field/hook.ts +0 -51
  880. package/src/base-field/index.ts +0 -1
  881. package/src/base-field/styles.ts +0 -86
  882. package/src/base-field/test/__snapshots__/index.tsx.snap +0 -141
  883. package/src/base-field/test/index.tsx +0 -84
  884. package/src/base-field/types.ts +0 -29
  885. package/src/combobox-control/stories/index.js +0 -339
  886. package/src/menu-items-choice/index.js +0 -43
  887. package/src/panel/header.js +0 -10
  888. package/src/panel/index.js +0 -26
  889. package/src/panel/row.js +0 -20
  890. package/src/resizable-box/styles/resizable-box.styles.js +0 -0
  891. package/src/tools-panel/stories/utils/tools-panel-with-item-group-slot.js +0 -246
  892. package/src/tree-grid/cell.js +0 -24
  893. package/src/tree-grid/item.js +0 -20
  894. package/src/tree-grid/roving-tab-index-item.js +0 -33
  895. package/src/tree-grid/row.js +0 -31
  896. package/src/tree-grid/stories/index.js +0 -106
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/navigator/navigator-screen/component.tsx"],"names":["animationEnterDelay","animationEnterDuration","animationExitDuration","animationExitDelay","UnconnectedNavigatorScreen","props","forwardedRef","children","className","path","otherProps","prefersReducedMotion","location","NavigatorContext","isMatch","wrapperRef","previousLocation","cx","classes","locationRef","current","isInitialLocation","isInitial","isBack","hasRestoredFocus","activeElement","ownerDocument","contains","elementToFocus","focusTargetSelector","querySelector","firstTabbable","focus","tabbable","find","mergedWrapperRef","animate","opacity","transition","delay","duration","ease","x","initial","exit","animatedProps","NavigatorScreen"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport type { ForwardedRef } from 'react';\n// eslint-disable-next-line no-restricted-imports\nimport { motion, MotionProps } from 'framer-motion';\nimport { css } from '@emotion/react';\n\n/**\n * WordPress dependencies\n */\nimport { focus } from '@wordpress/dom';\nimport { useContext, useEffect, useMemo, useRef } from '@wordpress/element';\nimport {\n\tuseReducedMotion,\n\tuseMergeRefs,\n\tusePrevious,\n} from '@wordpress/compose';\nimport { isRTL } from '@wordpress/i18n';\nimport { escapeAttribute } from '@wordpress/escape-html';\n\n/**\n * Internal dependencies\n */\nimport {\n\tcontextConnect,\n\tuseContextSystem,\n\tWordPressComponentProps,\n} from '../../ui/context';\nimport { useCx } from '../../utils/hooks/use-cx';\nimport { View } from '../../view';\nimport { NavigatorContext } from '../context';\nimport type { NavigatorScreenProps } from '../types';\n\nconst animationEnterDelay = 0;\nconst animationEnterDuration = 0.14;\nconst animationExitDuration = 0.14;\nconst animationExitDelay = 0;\n\n// Props specific to `framer-motion` can't be currently passed to `NavigatorScreen`,\n// as some of them would overlap with HTML props (e.g. `onAnimationStart`, ...)\ntype Props = Omit<\n\tWordPressComponentProps< NavigatorScreenProps, 'div', false >,\n\tkeyof MotionProps\n>;\n\nfunction UnconnectedNavigatorScreen(\n\tprops: Props,\n\tforwardedRef: ForwardedRef< any >\n) {\n\tconst { children, className, path, ...otherProps } = useContextSystem(\n\t\tprops,\n\t\t'NavigatorScreen'\n\t);\n\n\tconst prefersReducedMotion = useReducedMotion();\n\tconst { location } = useContext( NavigatorContext );\n\tconst isMatch = location.path === escapeAttribute( path );\n\tconst wrapperRef = useRef< HTMLDivElement >( null );\n\n\tconst previousLocation = usePrevious( location );\n\n\tconst cx = useCx();\n\tconst classes = useMemo(\n\t\t() =>\n\t\t\tcx(\n\t\t\t\tcss( {\n\t\t\t\t\t// Ensures horizontal overflow is visually accessible.\n\t\t\t\t\toverflowX: 'auto',\n\t\t\t\t\t// In case the root has a height, it should not be exceeded.\n\t\t\t\t\tmaxHeight: '100%',\n\t\t\t\t} ),\n\t\t\t\tclassName\n\t\t\t),\n\t\t[ className, cx ]\n\t);\n\n\tconst locationRef = useRef( location );\n\n\tuseEffect( () => {\n\t\tlocationRef.current = location;\n\t}, [ location ] );\n\n\t// Focus restoration\n\tconst isInitialLocation = location.isInitial && ! location.isBack;\n\tuseEffect( () => {\n\t\t// Only attempt to restore focus:\n\t\t// - if the current location is not the initial one (to avoid moving focus on page load)\n\t\t// - when the screen becomes visible\n\t\t// - if the wrapper ref has been assigned\n\t\t// - if focus hasn't already been restored for the current location\n\t\tif (\n\t\t\tisInitialLocation ||\n\t\t\t! isMatch ||\n\t\t\t! wrapperRef.current ||\n\t\t\tlocationRef.current.hasRestoredFocus\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst activeElement = wrapperRef.current.ownerDocument.activeElement;\n\n\t\t// If an element is already focused within the wrapper do not focus the\n\t\t// element. This prevents inputs or buttons from losing focus unnecessarily.\n\t\tif ( wrapperRef.current.contains( activeElement ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet elementToFocus: HTMLElement | null = null;\n\n\t\t// When navigating back, if a selector is provided, use it to look for the\n\t\t// target element (assumed to be a node inside the current NavigatorScreen)\n\t\tif ( location.isBack && previousLocation?.focusTargetSelector ) {\n\t\t\telementToFocus = wrapperRef.current.querySelector(\n\t\t\t\tpreviousLocation.focusTargetSelector\n\t\t\t);\n\t\t}\n\n\t\t// If the previous query didn't run or find any element to focus, fallback\n\t\t// to the first tabbable element in the screen (or the screen itself).\n\t\tif ( ! elementToFocus ) {\n\t\t\tconst firstTabbable = (\n\t\t\t\tfocus.tabbable.find( wrapperRef.current ) as HTMLElement[]\n\t\t\t )[ 0 ];\n\t\t\telementToFocus = firstTabbable ?? wrapperRef.current;\n\t\t}\n\n\t\tlocationRef.current.hasRestoredFocus = true;\n\t\telementToFocus.focus();\n\t}, [\n\t\tisInitialLocation,\n\t\tisMatch,\n\t\tlocation.isBack,\n\t\tpreviousLocation?.focusTargetSelector,\n\t] );\n\n\tconst mergedWrapperRef = useMergeRefs( [ forwardedRef, wrapperRef ] );\n\n\tif ( ! isMatch ) {\n\t\treturn null;\n\t}\n\n\tif ( prefersReducedMotion ) {\n\t\treturn (\n\t\t\t<View\n\t\t\t\tref={ mergedWrapperRef }\n\t\t\t\tclassName={ classes }\n\t\t\t\t{ ...otherProps }\n\t\t\t>\n\t\t\t\t{ children }\n\t\t\t</View>\n\t\t);\n\t}\n\n\tconst animate = {\n\t\topacity: 1,\n\t\ttransition: {\n\t\t\tdelay: animationEnterDelay,\n\t\t\tduration: animationEnterDuration,\n\t\t\tease: 'easeInOut',\n\t\t},\n\t\tx: 0,\n\t};\n\tconst initial = {\n\t\topacity: 0,\n\t\tx:\n\t\t\t( isRTL() && location.isBack ) || ( ! isRTL() && ! location.isBack )\n\t\t\t\t? 50\n\t\t\t\t: -50,\n\t};\n\tconst exit = {\n\t\tdelay: animationExitDelay,\n\t\topacity: 0,\n\t\tx:\n\t\t\t( ! isRTL() && location.isBack ) || ( isRTL() && ! location.isBack )\n\t\t\t\t? 50\n\t\t\t\t: -50,\n\t\ttransition: {\n\t\t\tduration: animationExitDuration,\n\t\t\tease: 'easeInOut',\n\t\t},\n\t};\n\n\tconst animatedProps = {\n\t\tanimate,\n\t\texit,\n\t\tinitial,\n\t};\n\n\treturn (\n\t\t<motion.div\n\t\t\tref={ mergedWrapperRef }\n\t\t\tclassName={ classes }\n\t\t\t{ ...otherProps }\n\t\t\t{ ...animatedProps }\n\t\t>\n\t\t\t{ children }\n\t\t</motion.div>\n\t);\n}\n\n/**\n * The `NavigatorScreen` component represents a single view/screen/panel and\n * should be used in combination with the `NavigatorProvider`, the\n * `NavigatorButton` and the `NavigatorBackButton` components (or the `useNavigator`\n * hook).\n *\n * @example\n * ```jsx\n * import {\n * __experimentalNavigatorProvider as NavigatorProvider,\n * __experimentalNavigatorScreen as NavigatorScreen,\n * __experimentalNavigatorButton as NavigatorButton,\n * __experimentalNavigatorBackButton as NavigatorBackButton,\n * } from '@wordpress/components';\n *\n * const MyNavigation = () => (\n * <NavigatorProvider initialPath=\"/\">\n * <NavigatorScreen path=\"/\">\n * <p>This is the home screen.</p>\n * <NavigatorButton path=\"/child\">\n * Navigate to child screen.\n * </NavigatorButton>\n * </NavigatorScreen>\n *\n * <NavigatorScreen path=\"/child\">\n * <p>This is the child screen.</p>\n * <NavigatorBackButton>\n * Go back\n * </NavigatorBackButton>\n * </NavigatorScreen>\n * </NavigatorProvider>\n * );\n * ```\n */\nexport const NavigatorScreen = contextConnect(\n\tUnconnectedNavigatorScreen,\n\t'NavigatorScreen'\n);\n\nexport default NavigatorScreen;\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/navigator/navigator-screen/component.tsx"],"names":["animationEnterDelay","animationEnterDuration","animationExitDuration","animationExitDelay","UnconnectedNavigatorScreen","props","forwardedRef","screenId","children","className","path","otherProps","prefersReducedMotion","location","match","addScreen","removeScreen","NavigatorContext","isMatch","wrapperRef","screen","id","cx","classes","locationRef","current","isInitialLocation","isInitial","isBack","hasRestoredFocus","activeElement","ownerDocument","contains","elementToFocus","focusTargetSelector","querySelector","firstTabbable","focus","tabbable","find","mergedWrapperRef","animate","opacity","transition","delay","duration","ease","x","initial","exit","animatedProps","NavigatorScreen"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport type { ForwardedRef } from 'react';\n// eslint-disable-next-line no-restricted-imports\nimport { motion, MotionProps } from 'framer-motion';\nimport { css } from '@emotion/react';\n\n/**\n * WordPress dependencies\n */\nimport { focus } from '@wordpress/dom';\nimport {\n\tuseContext,\n\tuseEffect,\n\tuseMemo,\n\tuseRef,\n\tuseId,\n} from '@wordpress/element';\nimport { useReducedMotion, useMergeRefs } from '@wordpress/compose';\nimport { isRTL } from '@wordpress/i18n';\nimport { escapeAttribute } from '@wordpress/escape-html';\n\n/**\n * Internal dependencies\n */\nimport {\n\tcontextConnect,\n\tuseContextSystem,\n\tWordPressComponentProps,\n} from '../../ui/context';\nimport { useCx } from '../../utils/hooks/use-cx';\nimport { View } from '../../view';\nimport { NavigatorContext } from '../context';\nimport type { NavigatorScreenProps } from '../types';\n\nconst animationEnterDelay = 0;\nconst animationEnterDuration = 0.14;\nconst animationExitDuration = 0.14;\nconst animationExitDelay = 0;\n\n// Props specific to `framer-motion` can't be currently passed to `NavigatorScreen`,\n// as some of them would overlap with HTML props (e.g. `onAnimationStart`, ...)\ntype Props = Omit<\n\tWordPressComponentProps< NavigatorScreenProps, 'div', false >,\n\tkeyof MotionProps\n>;\n\nfunction UnconnectedNavigatorScreen(\n\tprops: Props,\n\tforwardedRef: ForwardedRef< any >\n) {\n\tconst screenId = useId();\n\tconst { children, className, path, ...otherProps } = useContextSystem(\n\t\tprops,\n\t\t'NavigatorScreen'\n\t);\n\n\tconst prefersReducedMotion = useReducedMotion();\n\tconst { location, match, addScreen, removeScreen } =\n\t\tuseContext( NavigatorContext );\n\tconst isMatch = match === screenId;\n\tconst wrapperRef = useRef< HTMLDivElement >( null );\n\n\tuseEffect( () => {\n\t\tconst screen = {\n\t\t\tid: screenId,\n\t\t\tpath: escapeAttribute( path ),\n\t\t};\n\t\taddScreen( screen );\n\t\treturn () => removeScreen( screen );\n\t}, [ screenId, path, addScreen, removeScreen ] );\n\n\tconst cx = useCx();\n\tconst classes = useMemo(\n\t\t() =>\n\t\t\tcx(\n\t\t\t\tcss( {\n\t\t\t\t\t// Ensures horizontal overflow is visually accessible.\n\t\t\t\t\toverflowX: 'auto',\n\t\t\t\t\t// In case the root has a height, it should not be exceeded.\n\t\t\t\t\tmaxHeight: '100%',\n\t\t\t\t} ),\n\t\t\t\tclassName\n\t\t\t),\n\t\t[ className, cx ]\n\t);\n\n\tconst locationRef = useRef( location );\n\n\tuseEffect( () => {\n\t\tlocationRef.current = location;\n\t}, [ location ] );\n\n\t// Focus restoration\n\tconst isInitialLocation = location.isInitial && ! location.isBack;\n\tuseEffect( () => {\n\t\t// Only attempt to restore focus:\n\t\t// - if the current location is not the initial one (to avoid moving focus on page load)\n\t\t// - when the screen becomes visible\n\t\t// - if the wrapper ref has been assigned\n\t\t// - if focus hasn't already been restored for the current location\n\t\tif (\n\t\t\tisInitialLocation ||\n\t\t\t! isMatch ||\n\t\t\t! wrapperRef.current ||\n\t\t\tlocationRef.current.hasRestoredFocus\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst activeElement = wrapperRef.current.ownerDocument.activeElement;\n\n\t\t// If an element is already focused within the wrapper do not focus the\n\t\t// element. This prevents inputs or buttons from losing focus unnecessarily.\n\t\tif ( wrapperRef.current.contains( activeElement ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet elementToFocus: HTMLElement | null = null;\n\n\t\t// When navigating back, if a selector is provided, use it to look for the\n\t\t// target element (assumed to be a node inside the current NavigatorScreen)\n\t\tif ( location.isBack && location?.focusTargetSelector ) {\n\t\t\telementToFocus = wrapperRef.current.querySelector(\n\t\t\t\tlocation.focusTargetSelector\n\t\t\t);\n\t\t}\n\n\t\t// If the previous query didn't run or find any element to focus, fallback\n\t\t// to the first tabbable element in the screen (or the screen itself).\n\t\tif ( ! elementToFocus ) {\n\t\t\tconst firstTabbable = (\n\t\t\t\tfocus.tabbable.find( wrapperRef.current ) as HTMLElement[]\n\t\t\t )[ 0 ];\n\t\t\telementToFocus = firstTabbable ?? wrapperRef.current;\n\t\t}\n\n\t\tlocationRef.current.hasRestoredFocus = true;\n\t\telementToFocus.focus();\n\t}, [\n\t\tisInitialLocation,\n\t\tisMatch,\n\t\tlocation.isBack,\n\t\tlocation.focusTargetSelector,\n\t] );\n\n\tconst mergedWrapperRef = useMergeRefs( [ forwardedRef, wrapperRef ] );\n\n\tif ( ! isMatch ) {\n\t\treturn null;\n\t}\n\n\tif ( prefersReducedMotion ) {\n\t\treturn (\n\t\t\t<View\n\t\t\t\tref={ mergedWrapperRef }\n\t\t\t\tclassName={ classes }\n\t\t\t\t{ ...otherProps }\n\t\t\t>\n\t\t\t\t{ children }\n\t\t\t</View>\n\t\t);\n\t}\n\n\tconst animate = {\n\t\topacity: 1,\n\t\ttransition: {\n\t\t\tdelay: animationEnterDelay,\n\t\t\tduration: animationEnterDuration,\n\t\t\tease: 'easeInOut',\n\t\t},\n\t\tx: 0,\n\t};\n\tconst initial = {\n\t\topacity: 0,\n\t\tx:\n\t\t\t( isRTL() && location.isBack ) || ( ! isRTL() && ! location.isBack )\n\t\t\t\t? 50\n\t\t\t\t: -50,\n\t};\n\tconst exit = {\n\t\tdelay: animationExitDelay,\n\t\topacity: 0,\n\t\tx:\n\t\t\t( ! isRTL() && location.isBack ) || ( isRTL() && ! location.isBack )\n\t\t\t\t? 50\n\t\t\t\t: -50,\n\t\ttransition: {\n\t\t\tduration: animationExitDuration,\n\t\t\tease: 'easeInOut',\n\t\t},\n\t};\n\n\tconst animatedProps = {\n\t\tanimate,\n\t\texit,\n\t\tinitial,\n\t};\n\n\treturn (\n\t\t<motion.div\n\t\t\tref={ mergedWrapperRef }\n\t\t\tclassName={ classes }\n\t\t\t{ ...otherProps }\n\t\t\t{ ...animatedProps }\n\t\t>\n\t\t\t{ children }\n\t\t</motion.div>\n\t);\n}\n\n/**\n * The `NavigatorScreen` component represents a single view/screen/panel and\n * should be used in combination with the `NavigatorProvider`, the\n * `NavigatorButton` and the `NavigatorBackButton` components (or the `useNavigator`\n * hook).\n *\n * @example\n * ```jsx\n * import {\n * __experimentalNavigatorProvider as NavigatorProvider,\n * __experimentalNavigatorScreen as NavigatorScreen,\n * __experimentalNavigatorButton as NavigatorButton,\n * __experimentalNavigatorBackButton as NavigatorBackButton,\n * } from '@wordpress/components';\n *\n * const MyNavigation = () => (\n * <NavigatorProvider initialPath=\"/\">\n * <NavigatorScreen path=\"/\">\n * <p>This is the home screen.</p>\n * <NavigatorButton path=\"/child\">\n * Navigate to child screen.\n * </NavigatorButton>\n * </NavigatorScreen>\n *\n * <NavigatorScreen path=\"/child\">\n * <p>This is the child screen.</p>\n * <NavigatorBackButton>\n * Go back\n * </NavigatorBackButton>\n * </NavigatorScreen>\n * </NavigatorProvider>\n * );\n * ```\n */\nexport const NavigatorScreen = contextConnect(\n\tUnconnectedNavigatorScreen,\n\t'NavigatorScreen'\n);\n\nexport default NavigatorScreen;\n"]}
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = exports.NavigatorToParentButton = void 0;
9
+
10
+ var _element = require("@wordpress/element");
11
+
12
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
+
14
+ var _context = require("../../ui/context");
15
+
16
+ var _view = require("../../view");
17
+
18
+ var _hook = require("../navigator-back-button/hook");
19
+
20
+ /**
21
+ * External dependencies
22
+ */
23
+
24
+ /**
25
+ * Internal dependencies
26
+ */
27
+ function UnconnectedNavigatorToParentButton(props, forwardedRef) {
28
+ const navigatorToParentButtonProps = (0, _hook.useNavigatorBackButton)({ ...props,
29
+ goToParent: true
30
+ });
31
+ return (0, _element.createElement)(_view.View, (0, _extends2.default)({
32
+ ref: forwardedRef
33
+ }, navigatorToParentButtonProps));
34
+ }
35
+ /*
36
+ * The `NavigatorToParentButton` component can be used to navigate to a screen and
37
+ * should be used in combination with the `NavigatorProvider`, the
38
+ * `NavigatorScreen` and the `NavigatorButton` components (or the `useNavigator`
39
+ * hook).
40
+ *
41
+ * @example
42
+ * ```jsx
43
+ * import {
44
+ * __experimentalNavigatorProvider as NavigatorProvider,
45
+ * __experimentalNavigatorScreen as NavigatorScreen,
46
+ * __experimentalNavigatorButton as NavigatorButton,
47
+ * __experimentalNavigatorToParentButton as NavigatorToParentButton,
48
+ * } from '@wordpress/components';
49
+ *
50
+ * const MyNavigation = () => (
51
+ * <NavigatorProvider initialPath="/">
52
+ * <NavigatorScreen path="/">
53
+ * <p>This is the home screen.</p>
54
+ * <NavigatorButton path="/child">
55
+ * Navigate to child screen.
56
+ * </NavigatorButton>
57
+ * </NavigatorScreen>
58
+ *
59
+ * <NavigatorScreen path="/child">
60
+ * <p>This is the child screen.</p>
61
+ * <NavigatorToParentButton>
62
+ * Go to parent
63
+ * </NavigatorToParentButton>
64
+ * </NavigatorScreen>
65
+ * </NavigatorProvider>
66
+ * );
67
+ * ```
68
+ */
69
+
70
+
71
+ const NavigatorToParentButton = (0, _context.contextConnect)(UnconnectedNavigatorToParentButton, 'NavigatorToParentButton');
72
+ exports.NavigatorToParentButton = NavigatorToParentButton;
73
+ var _default = NavigatorToParentButton;
74
+ exports.default = _default;
75
+ //# sourceMappingURL=component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/components/src/navigator/navigator-to-parent-button/component.tsx"],"names":["UnconnectedNavigatorToParentButton","props","forwardedRef","navigatorToParentButtonProps","goToParent","NavigatorToParentButton"],"mappings":";;;;;;;;;;;;;AAQA;;AACA;;AACA;;AAVA;AACA;AACA;;AAGA;AACA;AACA;AAMA,SAASA,kCAAT,CACCC,KADD,EAECC,YAFD,EAGE;AACD,QAAMC,4BAA4B,GAAG,kCAAwB,EAC5D,GAAGF,KADyD;AAE5DG,IAAAA,UAAU,EAAE;AAFgD,GAAxB,CAArC;AAKA,SAAO,4BAAC,UAAD;AAAM,IAAA,GAAG,EAAGF;AAAZ,KAAgCC,4BAAhC,EAAP;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,MAAME,uBAAuB,GAAG,6BACtCL,kCADsC,EAEtC,yBAFsC,CAAhC;;eAKQK,uB","sourcesContent":["/**\n * External dependencies\n */\nimport type { ForwardedRef } from 'react';\n\n/**\n * Internal dependencies\n */\nimport { contextConnect, WordPressComponentProps } from '../../ui/context';\nimport { View } from '../../view';\nimport { useNavigatorBackButton } from '../navigator-back-button/hook';\nimport type { NavigatorToParentButtonProps } from '../types';\n\nfunction UnconnectedNavigatorToParentButton(\n\tprops: WordPressComponentProps< NavigatorToParentButtonProps, 'button' >,\n\tforwardedRef: ForwardedRef< any >\n) {\n\tconst navigatorToParentButtonProps = useNavigatorBackButton( {\n\t\t...props,\n\t\tgoToParent: true,\n\t} );\n\n\treturn <View ref={ forwardedRef } { ...navigatorToParentButtonProps } />;\n}\n\n/*\n * The `NavigatorToParentButton` component can be used to navigate to a screen and\n * should be used in combination with the `NavigatorProvider`, the\n * `NavigatorScreen` and the `NavigatorButton` components (or the `useNavigator`\n * hook).\n *\n * @example\n * ```jsx\n * import {\n * __experimentalNavigatorProvider as NavigatorProvider,\n * __experimentalNavigatorScreen as NavigatorScreen,\n * __experimentalNavigatorButton as NavigatorButton,\n * __experimentalNavigatorToParentButton as NavigatorToParentButton,\n * } from '@wordpress/components';\n *\n * const MyNavigation = () => (\n * <NavigatorProvider initialPath=\"/\">\n * <NavigatorScreen path=\"/\">\n * <p>This is the home screen.</p>\n * <NavigatorButton path=\"/child\">\n * Navigate to child screen.\n * </NavigatorButton>\n * </NavigatorScreen>\n *\n * <NavigatorScreen path=\"/child\">\n * <p>This is the child screen.</p>\n * <NavigatorToParentButton>\n * Go to parent\n * </NavigatorToParentButton>\n * </NavigatorScreen>\n * </NavigatorProvider>\n * );\n * ```\n */\nexport const NavigatorToParentButton = contextConnect(\n\tUnconnectedNavigatorToParentButton,\n\t'NavigatorToParentButton'\n);\n\nexport default NavigatorToParentButton;\n"]}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ Object.defineProperty(exports, "NavigatorToParentButton", {
9
+ enumerable: true,
10
+ get: function () {
11
+ return _component.default;
12
+ }
13
+ });
14
+
15
+ var _component = _interopRequireDefault(require("./component"));
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/components/src/navigator/navigator-to-parent-button/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA","sourcesContent":["export { default as NavigatorToParentButton } from './component';\n"]}
@@ -23,13 +23,17 @@ var _context = require("./context");
23
23
  function useNavigator() {
24
24
  const {
25
25
  location,
26
+ params,
26
27
  goTo,
27
- goBack
28
+ goBack,
29
+ goToParent
28
30
  } = (0, _element.useContext)(_context.NavigatorContext);
29
31
  return {
30
32
  location,
31
33
  goTo,
32
- goBack
34
+ goBack,
35
+ goToParent,
36
+ params
33
37
  };
34
38
  }
35
39
 
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/navigator/use-navigator.ts"],"names":["useNavigator","location","goTo","goBack","NavigatorContext"],"mappings":";;;;;;;AAGA;;AAKA;;AARA;AACA;AACA;;AAGA;AACA;AACA;;AAIA;AACA;AACA;AACA,SAASA,YAAT,GAAmC;AAClC,QAAM;AAAEC,IAAAA,QAAF;AAAYC,IAAAA,IAAZ;AAAkBC,IAAAA;AAAlB,MAA6B,yBAAYC,yBAAZ,CAAnC;AAEA,SAAO;AACNH,IAAAA,QADM;AAENC,IAAAA,IAFM;AAGNC,IAAAA;AAHM,GAAP;AAKA;;eAEcH,Y","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { NavigatorContext } from './context';\nimport type { Navigator } from './types';\n\n/**\n * Retrieves a `navigator` instance.\n */\nfunction useNavigator(): Navigator {\n\tconst { location, goTo, goBack } = useContext( NavigatorContext );\n\n\treturn {\n\t\tlocation,\n\t\tgoTo,\n\t\tgoBack,\n\t};\n}\n\nexport default useNavigator;\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/navigator/use-navigator.ts"],"names":["useNavigator","location","params","goTo","goBack","goToParent","NavigatorContext"],"mappings":";;;;;;;AAGA;;AAKA;;AARA;AACA;AACA;;AAGA;AACA;AACA;;AAIA;AACA;AACA;AACA,SAASA,YAAT,GAAmC;AAClC,QAAM;AAAEC,IAAAA,QAAF;AAAYC,IAAAA,MAAZ;AAAoBC,IAAAA,IAApB;AAA0BC,IAAAA,MAA1B;AAAkCC,IAAAA;AAAlC,MACL,yBAAYC,yBAAZ,CADD;AAGA,SAAO;AACNL,IAAAA,QADM;AAENE,IAAAA,IAFM;AAGNC,IAAAA,MAHM;AAINC,IAAAA,UAJM;AAKNH,IAAAA;AALM,GAAP;AAOA;;eAEcF,Y","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { NavigatorContext } from './context';\nimport type { Navigator } from './types';\n\n/**\n * Retrieves a `navigator` instance.\n */\nfunction useNavigator(): Navigator {\n\tconst { location, params, goTo, goBack, goToParent } =\n\t\tuseContext( NavigatorContext );\n\n\treturn {\n\t\tlocation,\n\t\tgoTo,\n\t\tgoBack,\n\t\tgoToParent,\n\t\tparams,\n\t};\n}\n\nexport default useNavigator;\n"]}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.findParent = findParent;
7
+ exports.patternMatch = patternMatch;
8
+
9
+ var _pathToRegexp = require("path-to-regexp");
10
+
11
+ /**
12
+ * External dependencies
13
+ */
14
+ function matchPath(path, pattern) {
15
+ const matchingFunction = (0, _pathToRegexp.match)(pattern, {
16
+ decode: decodeURIComponent
17
+ });
18
+ return matchingFunction(path);
19
+ }
20
+
21
+ function patternMatch(path, screens) {
22
+ for (const screen of screens) {
23
+ const matched = matchPath(path, screen.path);
24
+
25
+ if (matched) {
26
+ return {
27
+ params: matched.params,
28
+ id: screen.id
29
+ };
30
+ }
31
+ }
32
+
33
+ return undefined;
34
+ }
35
+
36
+ function findParent(path, screens) {
37
+ if (!path.startsWith('/')) {
38
+ return undefined;
39
+ }
40
+
41
+ const pathParts = path.split('/');
42
+ let parentPath;
43
+
44
+ while (pathParts.length > 1 && parentPath === undefined) {
45
+ pathParts.pop();
46
+ const potentialParentPath = pathParts.join('/') === '' ? '/' : pathParts.join('/');
47
+
48
+ if (screens.find(screen => {
49
+ return matchPath(potentialParentPath, screen.path) !== false;
50
+ })) {
51
+ parentPath = potentialParentPath;
52
+ }
53
+ }
54
+
55
+ return parentPath;
56
+ }
57
+ //# sourceMappingURL=router.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/components/src/navigator/utils/router.ts"],"names":["matchPath","path","pattern","matchingFunction","decode","decodeURIComponent","patternMatch","screens","screen","matched","params","id","undefined","findParent","startsWith","pathParts","split","parentPath","length","pop","potentialParentPath","join","find"],"mappings":";;;;;;;;AAGA;;AAHA;AACA;AACA;AAQA,SAASA,SAAT,CAAoBC,IAApB,EAAkCC,OAAlC,EAAoD;AACnD,QAAMC,gBAAgB,GAAG,yBAAsBD,OAAtB,EAA+B;AACvDE,IAAAA,MAAM,EAAEC;AAD+C,GAA/B,CAAzB;AAGA,SAAOF,gBAAgB,CAAEF,IAAF,CAAvB;AACA;;AAEM,SAASK,YAAT,CAAuBL,IAAvB,EAAqCM,OAArC,EAAyD;AAC/D,OAAM,MAAMC,MAAZ,IAAsBD,OAAtB,EAAgC;AAC/B,UAAME,OAAO,GAAGT,SAAS,CAAEC,IAAF,EAAQO,MAAM,CAACP,IAAf,CAAzB;;AACA,QAAKQ,OAAL,EAAe;AACd,aAAO;AAAEC,QAAAA,MAAM,EAAED,OAAO,CAACC,MAAlB;AAA0BC,QAAAA,EAAE,EAAEH,MAAM,CAACG;AAArC,OAAP;AACA;AACD;;AAED,SAAOC,SAAP;AACA;;AAEM,SAASC,UAAT,CAAqBZ,IAArB,EAAmCM,OAAnC,EAAuD;AAC7D,MAAK,CAAEN,IAAI,CAACa,UAAL,CAAiB,GAAjB,CAAP,EAAgC;AAC/B,WAAOF,SAAP;AACA;;AACD,QAAMG,SAAS,GAAGd,IAAI,CAACe,KAAL,CAAY,GAAZ,CAAlB;AACA,MAAIC,UAAJ;;AACA,SAAQF,SAAS,CAACG,MAAV,GAAmB,CAAnB,IAAwBD,UAAU,KAAKL,SAA/C,EAA2D;AAC1DG,IAAAA,SAAS,CAACI,GAAV;AACA,UAAMC,mBAAmB,GACxBL,SAAS,CAACM,IAAV,CAAgB,GAAhB,MAA0B,EAA1B,GAA+B,GAA/B,GAAqCN,SAAS,CAACM,IAAV,CAAgB,GAAhB,CADtC;;AAEA,QACCd,OAAO,CAACe,IAAR,CAAgBd,MAAF,IAAc;AAC3B,aAAOR,SAAS,CAAEoB,mBAAF,EAAuBZ,MAAM,CAACP,IAA9B,CAAT,KAAkD,KAAzD;AACA,KAFD,CADD,EAIE;AACDgB,MAAAA,UAAU,GAAGG,mBAAb;AACA;AACD;;AAED,SAAOH,UAAP;AACA","sourcesContent":["/**\n * External dependencies\n */\nimport { match } from 'path-to-regexp';\n\n/**\n * Internal dependencies\n */\nimport type { Screen, MatchParams } from '../types';\n\nfunction matchPath( path: string, pattern: string ) {\n\tconst matchingFunction = match< MatchParams >( pattern, {\n\t\tdecode: decodeURIComponent,\n\t} );\n\treturn matchingFunction( path );\n}\n\nexport function patternMatch( path: string, screens: Screen[] ) {\n\tfor ( const screen of screens ) {\n\t\tconst matched = matchPath( path, screen.path );\n\t\tif ( matched ) {\n\t\t\treturn { params: matched.params, id: screen.id };\n\t\t}\n\t}\n\n\treturn undefined;\n}\n\nexport function findParent( path: string, screens: Screen[] ) {\n\tif ( ! path.startsWith( '/' ) ) {\n\t\treturn undefined;\n\t}\n\tconst pathParts = path.split( '/' );\n\tlet parentPath;\n\twhile ( pathParts.length > 1 && parentPath === undefined ) {\n\t\tpathParts.pop();\n\t\tconst potentialParentPath =\n\t\t\tpathParts.join( '/' ) === '' ? '/' : pathParts.join( '/' );\n\t\tif (\n\t\t\tscreens.find( ( screen ) => {\n\t\t\t\treturn matchPath( potentialParentPath, screen.path ) !== false;\n\t\t\t} )\n\t\t) {\n\t\t\tparentPath = potentialParentPath;\n\t\t}\n\t}\n\n\treturn parentPath;\n}\n"]}
@@ -276,6 +276,7 @@ function PaletteEdit(_ref6) {
276
276
  colors = EMPTY_ARRAY,
277
277
  onChange,
278
278
  paletteLabel,
279
+ paletteLabelHeadingLevel = 2,
279
280
  emptyMessage,
280
281
  canOnlyChangeValues,
281
282
  canReset,
@@ -299,7 +300,9 @@ function PaletteEdit(_ref6) {
299
300
  setIsEditing(true);
300
301
  }
301
302
  }, [isGradient, elements]);
302
- return (0, _element.createElement)(_styles.PaletteEditStyles, null, (0, _element.createElement)(_styles.PaletteHStackHeader, null, (0, _element.createElement)(_styles.PaletteHeading, null, paletteLabel), (0, _element.createElement)(_styles.PaletteActionsContainer, null, hasElements && isEditing && (0, _element.createElement)(_styles.DoneButton, {
303
+ return (0, _element.createElement)(_styles.PaletteEditStyles, null, (0, _element.createElement)(_styles.PaletteHStackHeader, null, (0, _element.createElement)(_styles.PaletteHeading, {
304
+ level: paletteLabelHeadingLevel
305
+ }, paletteLabel), (0, _element.createElement)(_styles.PaletteActionsContainer, null, hasElements && isEditing && (0, _element.createElement)(_styles.DoneButton, {
303
306
  isSmall: true,
304
307
  onClick: () => {
305
308
  setIsEditing(false);
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/palette-edit/index.js"],"names":["DEFAULT_COLOR","NameInput","value","onChange","label","getNameForPosition","elements","slugPrefix","temporaryNameRegex","RegExp","position","reduce","previousValue","currentValue","slug","matches","match","id","parseInt","ColorPickerPopover","isGradient","element","onClose","color","newColor","gradient","newGradient","Option","canOnlyChangeValues","isEditing","onStartEditing","onRemove","onStopEditing","focusOutsideProps","undefined","style","cursor","background","name","nextName","lineSolid","isTemporaryElement","regex","test","DEFAULT_GRADIENT","PaletteEditListView","editingElement","setEditingElement","elementsReference","current","some","index","newElements","filter","length","debounceOnChange","map","newElement","currentElement","currentIndex","_currentElement","EMPTY_ARRAY","PaletteEdit","gradients","colors","paletteLabel","emptyMessage","canReset","setIsEditing","isAdding","elementsLength","hasElements","onSelectPaletteItem","newEditingElementIndex","selectedElement","key","plus","tempOptionName","moreVertical","isSmall"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { kebabCase } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useRef, useEffect, useCallback } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { lineSolid, moreVertical, plus } from '@wordpress/icons';\nimport {\n\t__experimentalUseFocusOutside as useFocusOutside,\n\tuseDebounce,\n} from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport Button from '../button';\nimport { ColorPicker } from '../color-picker';\nimport { FlexItem } from '../flex';\nimport { HStack } from '../h-stack';\nimport { ItemGroup } from '../item-group';\nimport { VStack } from '../v-stack';\nimport GradientPicker from '../gradient-picker';\nimport ColorPalette from '../color-palette';\nimport DropdownMenu from '../dropdown-menu';\nimport Popover from '../popover';\nimport {\n\tPaletteActionsContainer,\n\tPaletteEditStyles,\n\tPaletteHeading,\n\tPaletteHStackHeader,\n\tIndicatorStyled,\n\tPaletteItem,\n\tNameContainer,\n\tNameInputControl,\n\tDoneButton,\n\tRemoveButton,\n} from './styles';\nimport { NavigableMenu } from '../navigable-container';\nimport { DEFAULT_GRADIENT } from '../custom-gradient-picker/constants';\nimport CustomGradientPicker from '../custom-gradient-picker';\n\nconst DEFAULT_COLOR = '#000';\n\nfunction NameInput( { value, onChange, label } ) {\n\treturn (\n\t\t<NameInputControl\n\t\t\tlabel={ label }\n\t\t\thideLabelFromVision\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t/>\n\t);\n}\n\n/**\n * Returns a temporary name for a palette item in the format \"Color + id\".\n * To ensure there are no duplicate ids, this function checks all slugs for temporary names.\n * It expects slugs to be in the format: slugPrefix + color- + number.\n * It then sets the id component of the new name based on the incremented id of the highest existing slug id.\n *\n * @param {string} elements An array of color palette items.\n * @param {string} slugPrefix The slug prefix used to match the element slug.\n *\n * @return {string} A unique name for a palette item.\n */\nexport function getNameForPosition( elements, slugPrefix ) {\n\tconst temporaryNameRegex = new RegExp( `^${ slugPrefix }color-([\\\\d]+)$` );\n\tconst position = elements.reduce( ( previousValue, currentValue ) => {\n\t\tif ( typeof currentValue?.slug === 'string' ) {\n\t\t\tconst matches = currentValue?.slug.match( temporaryNameRegex );\n\t\t\tif ( matches ) {\n\t\t\t\tconst id = parseInt( matches[ 1 ], 10 );\n\t\t\t\tif ( id >= previousValue ) {\n\t\t\t\t\treturn id + 1;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn previousValue;\n\t}, 1 );\n\n\treturn sprintf(\n\t\t/* translators: %s: is a temporary id for a custom color */\n\t\t__( 'Color %s' ),\n\t\tposition\n\t);\n}\n\nfunction ColorPickerPopover( {\n\tisGradient,\n\telement,\n\tonChange,\n\tonClose = () => {},\n} ) {\n\treturn (\n\t\t<Popover\n\t\t\tplacement=\"left-start\"\n\t\t\toffset={ 20 }\n\t\t\tclassName=\"components-palette-edit__popover\"\n\t\t\tonClose={ onClose }\n\t\t>\n\t\t\t{ ! isGradient && (\n\t\t\t\t<ColorPicker\n\t\t\t\t\tcolor={ element.color }\n\t\t\t\t\tenableAlpha\n\t\t\t\t\tonChange={ ( newColor ) =>\n\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t...element,\n\t\t\t\t\t\t\tcolor: newColor,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ isGradient && (\n\t\t\t\t<div className=\"components-palette-edit__popover-gradient-picker\">\n\t\t\t\t\t<CustomGradientPicker\n\t\t\t\t\t\t__nextHasNoMargin\n\t\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t\t\tvalue={ element.gradient }\n\t\t\t\t\t\tonChange={ ( newGradient ) =>\n\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t...element,\n\t\t\t\t\t\t\t\tgradient: newGradient,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</Popover>\n\t);\n}\n\nfunction Option( {\n\tcanOnlyChangeValues,\n\telement,\n\tonChange,\n\tisEditing,\n\tonStartEditing,\n\tonRemove,\n\tonStopEditing,\n\tslugPrefix,\n\tisGradient,\n} ) {\n\tconst focusOutsideProps = useFocusOutside( onStopEditing );\n\tconst value = isGradient ? element.gradient : element.color;\n\n\treturn (\n\t\t<PaletteItem\n\t\t\tclassName={ isEditing ? 'is-selected' : undefined }\n\t\t\tas=\"div\"\n\t\t\tonClick={ onStartEditing }\n\t\t\t{ ...( isEditing\n\t\t\t\t? { ...focusOutsideProps }\n\t\t\t\t: {\n\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\tcursor: 'pointer',\n\t\t\t\t\t\t},\n\t\t\t\t } ) }\n\t\t>\n\t\t\t<HStack justify=\"flex-start\">\n\t\t\t\t<FlexItem>\n\t\t\t\t\t<IndicatorStyled\n\t\t\t\t\t\tstyle={ { background: value, color: 'transparent' } }\n\t\t\t\t\t/>\n\t\t\t\t</FlexItem>\n\t\t\t\t<FlexItem>\n\t\t\t\t\t{ isEditing && ! canOnlyChangeValues ? (\n\t\t\t\t\t\t<NameInput\n\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\tisGradient\n\t\t\t\t\t\t\t\t\t? __( 'Gradient name' )\n\t\t\t\t\t\t\t\t\t: __( 'Color name' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvalue={ element.name }\n\t\t\t\t\t\t\tonChange={ ( nextName ) =>\n\t\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t\t...element,\n\t\t\t\t\t\t\t\t\tname: nextName,\n\t\t\t\t\t\t\t\t\tslug: slugPrefix + kebabCase( nextName ),\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<NameContainer>{ element.name }</NameContainer>\n\t\t\t\t\t) }\n\t\t\t\t</FlexItem>\n\t\t\t\t{ isEditing && ! canOnlyChangeValues && (\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<RemoveButton\n\t\t\t\t\t\t\tisSmall\n\t\t\t\t\t\t\ticon={ lineSolid }\n\t\t\t\t\t\t\tlabel={ __( 'Remove color' ) }\n\t\t\t\t\t\t\tonClick={ onRemove }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t) }\n\t\t\t</HStack>\n\t\t\t{ isEditing && (\n\t\t\t\t<ColorPickerPopover\n\t\t\t\t\tisGradient={ isGradient }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\telement={ element }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</PaletteItem>\n\t);\n}\n\nfunction isTemporaryElement( slugPrefix, { slug, color, gradient } ) {\n\tconst regex = new RegExp( `^${ slugPrefix }color-([\\\\d]+)$` );\n\treturn (\n\t\tregex.test( slug ) &&\n\t\t( ( !! color && color === DEFAULT_COLOR ) ||\n\t\t\t( !! gradient && gradient === DEFAULT_GRADIENT ) )\n\t);\n}\n\nfunction PaletteEditListView( {\n\telements,\n\tonChange,\n\teditingElement,\n\tsetEditingElement,\n\tcanOnlyChangeValues,\n\tslugPrefix,\n\tisGradient,\n} ) {\n\t// When unmounting the component if there are empty elements (the user did not complete the insertion) clean them.\n\tconst elementsReference = useRef();\n\tuseEffect( () => {\n\t\telementsReference.current = elements;\n\t}, [ elements ] );\n\tuseEffect( () => {\n\t\treturn () => {\n\t\t\tif (\n\t\t\t\telementsReference.current.some( ( element, index ) =>\n\t\t\t\t\tisTemporaryElement( slugPrefix, element, index )\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tconst newElements = elementsReference.current.filter(\n\t\t\t\t\t( element ) => ! isTemporaryElement( slugPrefix, element )\n\t\t\t\t);\n\t\t\t\tonChange( newElements.length ? newElements : undefined );\n\t\t\t}\n\t\t};\n\t\t// Disable reason: adding the missing dependency here would cause breaking changes that will require\n\t\t// a heavier refactor to avoid. See https://github.com/WordPress/gutenberg/pull/43911\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [] );\n\n\tconst debounceOnChange = useDebounce( onChange, 100 );\n\n\treturn (\n\t\t<VStack spacing={ 3 }>\n\t\t\t<ItemGroup isRounded>\n\t\t\t\t{ elements.map( ( element, index ) => (\n\t\t\t\t\t<Option\n\t\t\t\t\t\tisGradient={ isGradient }\n\t\t\t\t\t\tcanOnlyChangeValues={ canOnlyChangeValues }\n\t\t\t\t\t\tkey={ index }\n\t\t\t\t\t\telement={ element }\n\t\t\t\t\t\tonStartEditing={ () => {\n\t\t\t\t\t\t\tif ( editingElement !== index ) {\n\t\t\t\t\t\t\t\tsetEditingElement( index );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonChange={ ( newElement ) => {\n\t\t\t\t\t\t\tdebounceOnChange(\n\t\t\t\t\t\t\t\telements.map(\n\t\t\t\t\t\t\t\t\t( currentElement, currentIndex ) => {\n\t\t\t\t\t\t\t\t\t\tif ( currentIndex === index ) {\n\t\t\t\t\t\t\t\t\t\t\treturn newElement;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\treturn currentElement;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonRemove={ () => {\n\t\t\t\t\t\t\tsetEditingElement( null );\n\t\t\t\t\t\t\tconst newElements = elements.filter(\n\t\t\t\t\t\t\t\t( _currentElement, currentIndex ) => {\n\t\t\t\t\t\t\t\t\tif ( currentIndex === index ) {\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tonChange(\n\t\t\t\t\t\t\t\tnewElements.length ? newElements : undefined\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tisEditing={ index === editingElement }\n\t\t\t\t\t\tonStopEditing={ () => {\n\t\t\t\t\t\t\tif ( index === editingElement ) {\n\t\t\t\t\t\t\t\tsetEditingElement( null );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tslugPrefix={ slugPrefix }\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t</ItemGroup>\n\t\t</VStack>\n\t);\n}\n\nconst EMPTY_ARRAY = [];\n\nexport default function PaletteEdit( {\n\tgradients,\n\tcolors = EMPTY_ARRAY,\n\tonChange,\n\tpaletteLabel,\n\temptyMessage,\n\tcanOnlyChangeValues,\n\tcanReset,\n\tslugPrefix = '',\n} ) {\n\tconst isGradient = !! gradients;\n\tconst elements = isGradient ? gradients : colors;\n\tconst [ isEditing, setIsEditing ] = useState( false );\n\tconst [ editingElement, setEditingElement ] = useState( null );\n\tconst isAdding =\n\t\tisEditing &&\n\t\teditingElement &&\n\t\telements[ editingElement ] &&\n\t\t! elements[ editingElement ].slug;\n\tconst elementsLength = elements.length;\n\tconst hasElements = elementsLength > 0;\n\tconst debounceOnChange = useDebounce( onChange, 100 );\n\tconst onSelectPaletteItem = useCallback(\n\t\t( value, newEditingElementIndex ) => {\n\t\t\tconst selectedElement = elements[ newEditingElementIndex ];\n\t\t\tconst key = isGradient ? 'gradient' : 'color';\n\t\t\t// Ensures that the index returned matches a known element value.\n\t\t\tif ( !! selectedElement && selectedElement[ key ] === value ) {\n\t\t\t\tsetEditingElement( newEditingElementIndex );\n\t\t\t} else {\n\t\t\t\tsetIsEditing( true );\n\t\t\t}\n\t\t},\n\t\t[ isGradient, elements ]\n\t);\n\n\treturn (\n\t\t<PaletteEditStyles>\n\t\t\t<PaletteHStackHeader>\n\t\t\t\t<PaletteHeading>{ paletteLabel }</PaletteHeading>\n\t\t\t\t<PaletteActionsContainer>\n\t\t\t\t\t{ hasElements && isEditing && (\n\t\t\t\t\t\t<DoneButton\n\t\t\t\t\t\t\tisSmall\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tsetIsEditing( false );\n\t\t\t\t\t\t\t\tsetEditingElement( null );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Done' ) }\n\t\t\t\t\t\t</DoneButton>\n\t\t\t\t\t) }\n\t\t\t\t\t{ ! canOnlyChangeValues && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tisSmall\n\t\t\t\t\t\t\tisPressed={ isAdding }\n\t\t\t\t\t\t\ticon={ plus }\n\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\tisGradient\n\t\t\t\t\t\t\t\t\t? __( 'Add gradient' )\n\t\t\t\t\t\t\t\t\t: __( 'Add color' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tconst tempOptionName = getNameForPosition(\n\t\t\t\t\t\t\t\t\telements,\n\t\t\t\t\t\t\t\t\tslugPrefix\n\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\tonChange( [\n\t\t\t\t\t\t\t\t\t...elements,\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t...( isGradient\n\t\t\t\t\t\t\t\t\t\t\t? { gradient: DEFAULT_GRADIENT }\n\t\t\t\t\t\t\t\t\t\t\t: { color: DEFAULT_COLOR } ),\n\t\t\t\t\t\t\t\t\t\tname: tempOptionName,\n\t\t\t\t\t\t\t\t\t\tslug:\n\t\t\t\t\t\t\t\t\t\t\tslugPrefix +\n\t\t\t\t\t\t\t\t\t\t\tkebabCase( tempOptionName ),\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t] );\n\t\t\t\t\t\t\t\tsetIsEditing( true );\n\t\t\t\t\t\t\t\tsetEditingElement( elements.length );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ hasElements &&\n\t\t\t\t\t\t( ! isEditing ||\n\t\t\t\t\t\t\t! canOnlyChangeValues ||\n\t\t\t\t\t\t\tcanReset ) && (\n\t\t\t\t\t\t\t<DropdownMenu\n\t\t\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t\tisGradient\n\t\t\t\t\t\t\t\t\t\t? __( 'Gradient options' )\n\t\t\t\t\t\t\t\t\t\t: __( 'Color options' )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\t\t\t\tisSmall: true,\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<NavigableMenu role=\"menu\">\n\t\t\t\t\t\t\t\t\t\t\t{ ! isEditing && (\n\t\t\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetIsEditing( true );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"components-palette-edit__menu-button\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ __( 'Show details' ) }\n\t\t\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t{ ! canOnlyChangeValues && (\n\t\t\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetEditingElement(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetIsEditing( false );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"components-palette-edit__menu-button\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ isGradient\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'Remove all gradients'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'Remove all colors'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t ) }\n\t\t\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t{ canReset && (\n\t\t\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetEditingElement(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ isGradient\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? __( 'Reset gradient' )\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: __( 'Reset colors' ) }\n\t\t\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</NavigableMenu>\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</DropdownMenu>\n\t\t\t\t\t\t) }\n\t\t\t\t</PaletteActionsContainer>\n\t\t\t</PaletteHStackHeader>\n\t\t\t{ hasElements && (\n\t\t\t\t<>\n\t\t\t\t\t{ isEditing && (\n\t\t\t\t\t\t<PaletteEditListView\n\t\t\t\t\t\t\tcanOnlyChangeValues={ canOnlyChangeValues }\n\t\t\t\t\t\t\telements={ elements }\n\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\teditingElement={ editingElement }\n\t\t\t\t\t\t\tsetEditingElement={ setEditingElement }\n\t\t\t\t\t\t\tslugPrefix={ slugPrefix }\n\t\t\t\t\t\t\tisGradient={ isGradient }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ ! isEditing && editingElement !== null && (\n\t\t\t\t\t\t<ColorPickerPopover\n\t\t\t\t\t\t\tisGradient={ isGradient }\n\t\t\t\t\t\t\tonClose={ () => setEditingElement( null ) }\n\t\t\t\t\t\t\tonChange={ ( newElement ) => {\n\t\t\t\t\t\t\t\tdebounceOnChange(\n\t\t\t\t\t\t\t\t\telements.map(\n\t\t\t\t\t\t\t\t\t\t( currentElement, currentIndex ) => {\n\t\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t\tcurrentIndex === editingElement\n\t\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn newElement;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\treturn currentElement;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\telement={ elements[ editingElement ] }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ ! isEditing &&\n\t\t\t\t\t\t( isGradient ? (\n\t\t\t\t\t\t\t<GradientPicker\n\t\t\t\t\t\t\t\t__nextHasNoMargin\n\t\t\t\t\t\t\t\tgradients={ gradients }\n\t\t\t\t\t\t\t\tonChange={ onSelectPaletteItem }\n\t\t\t\t\t\t\t\tclearable={ false }\n\t\t\t\t\t\t\t\tdisableCustomGradients={ true }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<ColorPalette\n\t\t\t\t\t\t\t\tcolors={ colors }\n\t\t\t\t\t\t\t\tonChange={ onSelectPaletteItem }\n\t\t\t\t\t\t\t\tclearable={ false }\n\t\t\t\t\t\t\t\tdisableCustomColors={ true }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) ) }\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t{ ! hasElements && emptyMessage }\n\t\t</PaletteEditStyles>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/palette-edit/index.js"],"names":["DEFAULT_COLOR","NameInput","value","onChange","label","getNameForPosition","elements","slugPrefix","temporaryNameRegex","RegExp","position","reduce","previousValue","currentValue","slug","matches","match","id","parseInt","ColorPickerPopover","isGradient","element","onClose","color","newColor","gradient","newGradient","Option","canOnlyChangeValues","isEditing","onStartEditing","onRemove","onStopEditing","focusOutsideProps","undefined","style","cursor","background","name","nextName","lineSolid","isTemporaryElement","regex","test","DEFAULT_GRADIENT","PaletteEditListView","editingElement","setEditingElement","elementsReference","current","some","index","newElements","filter","length","debounceOnChange","map","newElement","currentElement","currentIndex","_currentElement","EMPTY_ARRAY","PaletteEdit","gradients","colors","paletteLabel","paletteLabelHeadingLevel","emptyMessage","canReset","setIsEditing","isAdding","elementsLength","hasElements","onSelectPaletteItem","newEditingElementIndex","selectedElement","key","plus","tempOptionName","moreVertical","isSmall"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { kebabCase } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useRef, useEffect, useCallback } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { lineSolid, moreVertical, plus } from '@wordpress/icons';\nimport {\n\t__experimentalUseFocusOutside as useFocusOutside,\n\tuseDebounce,\n} from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport Button from '../button';\nimport { ColorPicker } from '../color-picker';\nimport { FlexItem } from '../flex';\nimport { HStack } from '../h-stack';\nimport { ItemGroup } from '../item-group';\nimport { VStack } from '../v-stack';\nimport GradientPicker from '../gradient-picker';\nimport ColorPalette from '../color-palette';\nimport DropdownMenu from '../dropdown-menu';\nimport Popover from '../popover';\nimport {\n\tPaletteActionsContainer,\n\tPaletteEditStyles,\n\tPaletteHeading,\n\tPaletteHStackHeader,\n\tIndicatorStyled,\n\tPaletteItem,\n\tNameContainer,\n\tNameInputControl,\n\tDoneButton,\n\tRemoveButton,\n} from './styles';\nimport { NavigableMenu } from '../navigable-container';\nimport { DEFAULT_GRADIENT } from '../custom-gradient-picker/constants';\nimport CustomGradientPicker from '../custom-gradient-picker';\n\nconst DEFAULT_COLOR = '#000';\n\nfunction NameInput( { value, onChange, label } ) {\n\treturn (\n\t\t<NameInputControl\n\t\t\tlabel={ label }\n\t\t\thideLabelFromVision\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t/>\n\t);\n}\n\n/**\n * Returns a temporary name for a palette item in the format \"Color + id\".\n * To ensure there are no duplicate ids, this function checks all slugs for temporary names.\n * It expects slugs to be in the format: slugPrefix + color- + number.\n * It then sets the id component of the new name based on the incremented id of the highest existing slug id.\n *\n * @param {string} elements An array of color palette items.\n * @param {string} slugPrefix The slug prefix used to match the element slug.\n *\n * @return {string} A unique name for a palette item.\n */\nexport function getNameForPosition( elements, slugPrefix ) {\n\tconst temporaryNameRegex = new RegExp( `^${ slugPrefix }color-([\\\\d]+)$` );\n\tconst position = elements.reduce( ( previousValue, currentValue ) => {\n\t\tif ( typeof currentValue?.slug === 'string' ) {\n\t\t\tconst matches = currentValue?.slug.match( temporaryNameRegex );\n\t\t\tif ( matches ) {\n\t\t\t\tconst id = parseInt( matches[ 1 ], 10 );\n\t\t\t\tif ( id >= previousValue ) {\n\t\t\t\t\treturn id + 1;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn previousValue;\n\t}, 1 );\n\n\treturn sprintf(\n\t\t/* translators: %s: is a temporary id for a custom color */\n\t\t__( 'Color %s' ),\n\t\tposition\n\t);\n}\n\nfunction ColorPickerPopover( {\n\tisGradient,\n\telement,\n\tonChange,\n\tonClose = () => {},\n} ) {\n\treturn (\n\t\t<Popover\n\t\t\tplacement=\"left-start\"\n\t\t\toffset={ 20 }\n\t\t\tclassName=\"components-palette-edit__popover\"\n\t\t\tonClose={ onClose }\n\t\t>\n\t\t\t{ ! isGradient && (\n\t\t\t\t<ColorPicker\n\t\t\t\t\tcolor={ element.color }\n\t\t\t\t\tenableAlpha\n\t\t\t\t\tonChange={ ( newColor ) =>\n\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t...element,\n\t\t\t\t\t\t\tcolor: newColor,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ isGradient && (\n\t\t\t\t<div className=\"components-palette-edit__popover-gradient-picker\">\n\t\t\t\t\t<CustomGradientPicker\n\t\t\t\t\t\t__nextHasNoMargin\n\t\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t\t\tvalue={ element.gradient }\n\t\t\t\t\t\tonChange={ ( newGradient ) =>\n\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t...element,\n\t\t\t\t\t\t\t\tgradient: newGradient,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</Popover>\n\t);\n}\n\nfunction Option( {\n\tcanOnlyChangeValues,\n\telement,\n\tonChange,\n\tisEditing,\n\tonStartEditing,\n\tonRemove,\n\tonStopEditing,\n\tslugPrefix,\n\tisGradient,\n} ) {\n\tconst focusOutsideProps = useFocusOutside( onStopEditing );\n\tconst value = isGradient ? element.gradient : element.color;\n\n\treturn (\n\t\t<PaletteItem\n\t\t\tclassName={ isEditing ? 'is-selected' : undefined }\n\t\t\tas=\"div\"\n\t\t\tonClick={ onStartEditing }\n\t\t\t{ ...( isEditing\n\t\t\t\t? { ...focusOutsideProps }\n\t\t\t\t: {\n\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\tcursor: 'pointer',\n\t\t\t\t\t\t},\n\t\t\t\t } ) }\n\t\t>\n\t\t\t<HStack justify=\"flex-start\">\n\t\t\t\t<FlexItem>\n\t\t\t\t\t<IndicatorStyled\n\t\t\t\t\t\tstyle={ { background: value, color: 'transparent' } }\n\t\t\t\t\t/>\n\t\t\t\t</FlexItem>\n\t\t\t\t<FlexItem>\n\t\t\t\t\t{ isEditing && ! canOnlyChangeValues ? (\n\t\t\t\t\t\t<NameInput\n\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\tisGradient\n\t\t\t\t\t\t\t\t\t? __( 'Gradient name' )\n\t\t\t\t\t\t\t\t\t: __( 'Color name' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvalue={ element.name }\n\t\t\t\t\t\t\tonChange={ ( nextName ) =>\n\t\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t\t...element,\n\t\t\t\t\t\t\t\t\tname: nextName,\n\t\t\t\t\t\t\t\t\tslug: slugPrefix + kebabCase( nextName ),\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<NameContainer>{ element.name }</NameContainer>\n\t\t\t\t\t) }\n\t\t\t\t</FlexItem>\n\t\t\t\t{ isEditing && ! canOnlyChangeValues && (\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<RemoveButton\n\t\t\t\t\t\t\tisSmall\n\t\t\t\t\t\t\ticon={ lineSolid }\n\t\t\t\t\t\t\tlabel={ __( 'Remove color' ) }\n\t\t\t\t\t\t\tonClick={ onRemove }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t) }\n\t\t\t</HStack>\n\t\t\t{ isEditing && (\n\t\t\t\t<ColorPickerPopover\n\t\t\t\t\tisGradient={ isGradient }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\telement={ element }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</PaletteItem>\n\t);\n}\n\nfunction isTemporaryElement( slugPrefix, { slug, color, gradient } ) {\n\tconst regex = new RegExp( `^${ slugPrefix }color-([\\\\d]+)$` );\n\treturn (\n\t\tregex.test( slug ) &&\n\t\t( ( !! color && color === DEFAULT_COLOR ) ||\n\t\t\t( !! gradient && gradient === DEFAULT_GRADIENT ) )\n\t);\n}\n\nfunction PaletteEditListView( {\n\telements,\n\tonChange,\n\teditingElement,\n\tsetEditingElement,\n\tcanOnlyChangeValues,\n\tslugPrefix,\n\tisGradient,\n} ) {\n\t// When unmounting the component if there are empty elements (the user did not complete the insertion) clean them.\n\tconst elementsReference = useRef();\n\tuseEffect( () => {\n\t\telementsReference.current = elements;\n\t}, [ elements ] );\n\tuseEffect( () => {\n\t\treturn () => {\n\t\t\tif (\n\t\t\t\telementsReference.current.some( ( element, index ) =>\n\t\t\t\t\tisTemporaryElement( slugPrefix, element, index )\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tconst newElements = elementsReference.current.filter(\n\t\t\t\t\t( element ) => ! isTemporaryElement( slugPrefix, element )\n\t\t\t\t);\n\t\t\t\tonChange( newElements.length ? newElements : undefined );\n\t\t\t}\n\t\t};\n\t\t// Disable reason: adding the missing dependency here would cause breaking changes that will require\n\t\t// a heavier refactor to avoid. See https://github.com/WordPress/gutenberg/pull/43911\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [] );\n\n\tconst debounceOnChange = useDebounce( onChange, 100 );\n\n\treturn (\n\t\t<VStack spacing={ 3 }>\n\t\t\t<ItemGroup isRounded>\n\t\t\t\t{ elements.map( ( element, index ) => (\n\t\t\t\t\t<Option\n\t\t\t\t\t\tisGradient={ isGradient }\n\t\t\t\t\t\tcanOnlyChangeValues={ canOnlyChangeValues }\n\t\t\t\t\t\tkey={ index }\n\t\t\t\t\t\telement={ element }\n\t\t\t\t\t\tonStartEditing={ () => {\n\t\t\t\t\t\t\tif ( editingElement !== index ) {\n\t\t\t\t\t\t\t\tsetEditingElement( index );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonChange={ ( newElement ) => {\n\t\t\t\t\t\t\tdebounceOnChange(\n\t\t\t\t\t\t\t\telements.map(\n\t\t\t\t\t\t\t\t\t( currentElement, currentIndex ) => {\n\t\t\t\t\t\t\t\t\t\tif ( currentIndex === index ) {\n\t\t\t\t\t\t\t\t\t\t\treturn newElement;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\treturn currentElement;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonRemove={ () => {\n\t\t\t\t\t\t\tsetEditingElement( null );\n\t\t\t\t\t\t\tconst newElements = elements.filter(\n\t\t\t\t\t\t\t\t( _currentElement, currentIndex ) => {\n\t\t\t\t\t\t\t\t\tif ( currentIndex === index ) {\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tonChange(\n\t\t\t\t\t\t\t\tnewElements.length ? newElements : undefined\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tisEditing={ index === editingElement }\n\t\t\t\t\t\tonStopEditing={ () => {\n\t\t\t\t\t\t\tif ( index === editingElement ) {\n\t\t\t\t\t\t\t\tsetEditingElement( null );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tslugPrefix={ slugPrefix }\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t</ItemGroup>\n\t\t</VStack>\n\t);\n}\n\nconst EMPTY_ARRAY = [];\n\nexport default function PaletteEdit( {\n\tgradients,\n\tcolors = EMPTY_ARRAY,\n\tonChange,\n\tpaletteLabel,\n\tpaletteLabelHeadingLevel = 2,\n\temptyMessage,\n\tcanOnlyChangeValues,\n\tcanReset,\n\tslugPrefix = '',\n} ) {\n\tconst isGradient = !! gradients;\n\tconst elements = isGradient ? gradients : colors;\n\tconst [ isEditing, setIsEditing ] = useState( false );\n\tconst [ editingElement, setEditingElement ] = useState( null );\n\tconst isAdding =\n\t\tisEditing &&\n\t\teditingElement &&\n\t\telements[ editingElement ] &&\n\t\t! elements[ editingElement ].slug;\n\tconst elementsLength = elements.length;\n\tconst hasElements = elementsLength > 0;\n\tconst debounceOnChange = useDebounce( onChange, 100 );\n\tconst onSelectPaletteItem = useCallback(\n\t\t( value, newEditingElementIndex ) => {\n\t\t\tconst selectedElement = elements[ newEditingElementIndex ];\n\t\t\tconst key = isGradient ? 'gradient' : 'color';\n\t\t\t// Ensures that the index returned matches a known element value.\n\t\t\tif ( !! selectedElement && selectedElement[ key ] === value ) {\n\t\t\t\tsetEditingElement( newEditingElementIndex );\n\t\t\t} else {\n\t\t\t\tsetIsEditing( true );\n\t\t\t}\n\t\t},\n\t\t[ isGradient, elements ]\n\t);\n\n\treturn (\n\t\t<PaletteEditStyles>\n\t\t\t<PaletteHStackHeader>\n\t\t\t\t<PaletteHeading level={ paletteLabelHeadingLevel }>\n\t\t\t\t\t{ paletteLabel }\n\t\t\t\t</PaletteHeading>\n\t\t\t\t<PaletteActionsContainer>\n\t\t\t\t\t{ hasElements && isEditing && (\n\t\t\t\t\t\t<DoneButton\n\t\t\t\t\t\t\tisSmall\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tsetIsEditing( false );\n\t\t\t\t\t\t\t\tsetEditingElement( null );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Done' ) }\n\t\t\t\t\t\t</DoneButton>\n\t\t\t\t\t) }\n\t\t\t\t\t{ ! canOnlyChangeValues && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tisSmall\n\t\t\t\t\t\t\tisPressed={ isAdding }\n\t\t\t\t\t\t\ticon={ plus }\n\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\tisGradient\n\t\t\t\t\t\t\t\t\t? __( 'Add gradient' )\n\t\t\t\t\t\t\t\t\t: __( 'Add color' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tconst tempOptionName = getNameForPosition(\n\t\t\t\t\t\t\t\t\telements,\n\t\t\t\t\t\t\t\t\tslugPrefix\n\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\tonChange( [\n\t\t\t\t\t\t\t\t\t...elements,\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t...( isGradient\n\t\t\t\t\t\t\t\t\t\t\t? { gradient: DEFAULT_GRADIENT }\n\t\t\t\t\t\t\t\t\t\t\t: { color: DEFAULT_COLOR } ),\n\t\t\t\t\t\t\t\t\t\tname: tempOptionName,\n\t\t\t\t\t\t\t\t\t\tslug:\n\t\t\t\t\t\t\t\t\t\t\tslugPrefix +\n\t\t\t\t\t\t\t\t\t\t\tkebabCase( tempOptionName ),\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t] );\n\t\t\t\t\t\t\t\tsetIsEditing( true );\n\t\t\t\t\t\t\t\tsetEditingElement( elements.length );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ hasElements &&\n\t\t\t\t\t\t( ! isEditing ||\n\t\t\t\t\t\t\t! canOnlyChangeValues ||\n\t\t\t\t\t\t\tcanReset ) && (\n\t\t\t\t\t\t\t<DropdownMenu\n\t\t\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t\tisGradient\n\t\t\t\t\t\t\t\t\t\t? __( 'Gradient options' )\n\t\t\t\t\t\t\t\t\t\t: __( 'Color options' )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\t\t\t\tisSmall: true,\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<NavigableMenu role=\"menu\">\n\t\t\t\t\t\t\t\t\t\t\t{ ! isEditing && (\n\t\t\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetIsEditing( true );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"components-palette-edit__menu-button\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ __( 'Show details' ) }\n\t\t\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t{ ! canOnlyChangeValues && (\n\t\t\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetEditingElement(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetIsEditing( false );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"components-palette-edit__menu-button\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ isGradient\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'Remove all gradients'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'Remove all colors'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t ) }\n\t\t\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t{ canReset && (\n\t\t\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetEditingElement(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ isGradient\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? __( 'Reset gradient' )\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: __( 'Reset colors' ) }\n\t\t\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</NavigableMenu>\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</DropdownMenu>\n\t\t\t\t\t\t) }\n\t\t\t\t</PaletteActionsContainer>\n\t\t\t</PaletteHStackHeader>\n\t\t\t{ hasElements && (\n\t\t\t\t<>\n\t\t\t\t\t{ isEditing && (\n\t\t\t\t\t\t<PaletteEditListView\n\t\t\t\t\t\t\tcanOnlyChangeValues={ canOnlyChangeValues }\n\t\t\t\t\t\t\telements={ elements }\n\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\teditingElement={ editingElement }\n\t\t\t\t\t\t\tsetEditingElement={ setEditingElement }\n\t\t\t\t\t\t\tslugPrefix={ slugPrefix }\n\t\t\t\t\t\t\tisGradient={ isGradient }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ ! isEditing && editingElement !== null && (\n\t\t\t\t\t\t<ColorPickerPopover\n\t\t\t\t\t\t\tisGradient={ isGradient }\n\t\t\t\t\t\t\tonClose={ () => setEditingElement( null ) }\n\t\t\t\t\t\t\tonChange={ ( newElement ) => {\n\t\t\t\t\t\t\t\tdebounceOnChange(\n\t\t\t\t\t\t\t\t\telements.map(\n\t\t\t\t\t\t\t\t\t\t( currentElement, currentIndex ) => {\n\t\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t\tcurrentIndex === editingElement\n\t\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn newElement;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\treturn currentElement;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\telement={ elements[ editingElement ] }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ ! isEditing &&\n\t\t\t\t\t\t( isGradient ? (\n\t\t\t\t\t\t\t<GradientPicker\n\t\t\t\t\t\t\t\t__nextHasNoMargin\n\t\t\t\t\t\t\t\tgradients={ gradients }\n\t\t\t\t\t\t\t\tonChange={ onSelectPaletteItem }\n\t\t\t\t\t\t\t\tclearable={ false }\n\t\t\t\t\t\t\t\tdisableCustomGradients={ true }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<ColorPalette\n\t\t\t\t\t\t\t\tcolors={ colors }\n\t\t\t\t\t\t\t\tonChange={ onSelectPaletteItem }\n\t\t\t\t\t\t\t\tclearable={ false }\n\t\t\t\t\t\t\t\tdisableCustomColors={ true }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) ) }\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t{ ! hasElements && emptyMessage }\n\t\t</PaletteEditStyles>\n\t);\n}\n"]}
@@ -7,6 +7,15 @@ exports.default = void 0;
7
7
 
8
8
  var _element = require("@wordpress/element");
9
9
 
10
+ /**
11
+ * Internal dependencies
12
+ */
13
+
14
+ /**
15
+ * `PanelHeader` renders the header for the `Panel`.
16
+ * This is used by the `Panel` component under the hood,
17
+ * so it does not typically need to be used.
18
+ */
10
19
  function PanelHeader(_ref) {
11
20
  let {
12
21
  label,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/panel/header.js"],"names":["PanelHeader","label","children"],"mappings":";;;;;;;;;AAAA,SAASA,WAAT,OAA4C;AAAA,MAAtB;AAAEC,IAAAA,KAAF;AAASC,IAAAA;AAAT,GAAsB;AAC3C,SACC;AAAK,IAAA,SAAS,EAAC;AAAf,KACGD,KAAK,IAAI,wCAAMA,KAAN,CADZ,EAEGC,QAFH,CADD;AAMA;;eAEcF,W","sourcesContent":["function PanelHeader( { label, children } ) {\n\treturn (\n\t\t<div className=\"components-panel__header\">\n\t\t\t{ label && <h2>{ label }</h2> }\n\t\t\t{ children }\n\t\t</div>\n\t);\n}\n\nexport default PanelHeader;\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/panel/header.tsx"],"names":["PanelHeader","label","children"],"mappings":";;;;;;;;;AAAA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA,SAASA,WAAT,OAA8D;AAAA,MAAxC;AAAEC,IAAAA,KAAF;AAASC,IAAAA;AAAT,GAAwC;AAC7D,SACC;AAAK,IAAA,SAAS,EAAC;AAAf,KACGD,KAAK,IAAI,wCAAMA,KAAN,CADZ,EAEGC,QAFH,CADD;AAMA;;eAEcF,W","sourcesContent":["/**\n * Internal dependencies\n */\nimport type { PanelHeaderProps } from './types';\n\n/**\n * `PanelHeader` renders the header for the `Panel`.\n * This is used by the `Panel` component under the hood,\n * so it does not typically need to be used.\n */\nfunction PanelHeader( { label, children }: PanelHeaderProps ) {\n\treturn (\n\t\t<div className=\"components-panel__header\">\n\t\t\t{ label && <h2>{ label }</h2> }\n\t\t\t{ children }\n\t\t</div>\n\t);\n}\n\nexport default PanelHeader;\n"]}
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.default = void 0;
8
+ exports.default = exports.Panel = void 0;
9
9
 
10
10
  var _element = require("@wordpress/element");
11
11
 
@@ -24,7 +24,7 @@ var _header = _interopRequireDefault(require("./header"));
24
24
  /**
25
25
  * Internal dependencies
26
26
  */
27
- function Panel(_ref, ref) {
27
+ function UnforwardedPanel(_ref, ref) {
28
28
  let {
29
29
  header,
30
30
  className,
@@ -38,8 +38,26 @@ function Panel(_ref, ref) {
38
38
  label: header
39
39
  }), children);
40
40
  }
41
+ /**
42
+ * `Panel` expands and collapses multiple sections of content.
43
+ *
44
+ * ```jsx
45
+ * import { Panel, PanelBody, PanelRow } from '@wordpress/components';
46
+ * import { more } from '@wordpress/icons';
47
+ *
48
+ * const MyPanel = () => (
49
+ * <Panel header="My Panel">
50
+ * <PanelBody title="My Block Settings" icon={ more } initialOpen={ true }>
51
+ * <PanelRow>My Panel Inputs and Labels</PanelRow>
52
+ * </PanelBody>
53
+ * </Panel>
54
+ * );
55
+ * ```
56
+ */
41
57
 
42
- var _default = (0, _element.forwardRef)(Panel);
43
58
 
59
+ const Panel = (0, _element.forwardRef)(UnforwardedPanel);
60
+ exports.Panel = Panel;
61
+ var _default = Panel;
44
62
  exports.default = _default;
45
63
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/panel/index.js"],"names":["Panel","ref","header","className","children","classNames"],"mappings":";;;;;;;;;AAQA;;AALA;;AAUA;;AAbA;AACA;AACA;;AAGA;AACA;AACA;;AAGA;AACA;AACA;AAGA,SAASA,KAAT,OAAiDC,GAAjD,EAAuD;AAAA,MAAvC;AAAEC,IAAAA,MAAF;AAAUC,IAAAA,SAAV;AAAqBC,IAAAA;AAArB,GAAuC;AACtD,QAAMC,UAAU,GAAG,yBAAYF,SAAZ,EAAuB,kBAAvB,CAAnB;AACA,SACC;AAAK,IAAA,SAAS,EAAGE,UAAjB;AAA8B,IAAA,GAAG,EAAGJ;AAApC,KACGC,MAAM,IAAI,4BAAC,eAAD;AAAa,IAAA,KAAK,EAAGA;AAArB,IADb,EAEGE,QAFH,CADD;AAMA;;eAEc,yBAAYJ,KAAZ,C","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { forwardRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport PanelHeader from './header';\n\nfunction Panel( { header, className, children }, ref ) {\n\tconst classNames = classnames( className, 'components-panel' );\n\treturn (\n\t\t<div className={ classNames } ref={ ref }>\n\t\t\t{ header && <PanelHeader label={ header } /> }\n\t\t\t{ children }\n\t\t</div>\n\t);\n}\n\nexport default forwardRef( Panel );\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/panel/index.tsx"],"names":["UnforwardedPanel","ref","header","className","children","classNames","Panel"],"mappings":";;;;;;;;;AAQA;;AALA;;AAUA;;AAbA;AACA;AACA;;AAGA;AACA;AACA;;AAGA;AACA;AACA;AAIA,SAASA,gBAAT,OAECC,GAFD,EAGE;AAAA,MAFD;AAAEC,IAAAA,MAAF;AAAUC,IAAAA,SAAV;AAAqBC,IAAAA;AAArB,GAEC;AACD,QAAMC,UAAU,GAAG,yBAAYF,SAAZ,EAAuB,kBAAvB,CAAnB;AACA,SACC;AAAK,IAAA,SAAS,EAAGE,UAAjB;AAA8B,IAAA,GAAG,EAAGJ;AAApC,KACGC,MAAM,IAAI,4BAAC,eAAD;AAAa,IAAA,KAAK,EAAGA;AAArB,IADb,EAEGE,QAFH,CADD;AAMA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,MAAME,KAAK,GAAG,yBAAYN,gBAAZ,CAAd;;eAEQM,K","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { forwardRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport PanelHeader from './header';\nimport type { PanelProps } from './types';\n\nfunction UnforwardedPanel(\n\t{ header, className, children }: PanelProps,\n\tref: React.ForwardedRef< HTMLDivElement >\n) {\n\tconst classNames = classnames( className, 'components-panel' );\n\treturn (\n\t\t<div className={ classNames } ref={ ref }>\n\t\t\t{ header && <PanelHeader label={ header } /> }\n\t\t\t{ children }\n\t\t</div>\n\t);\n}\n\n/**\n * `Panel` expands and collapses multiple sections of content.\n *\n * ```jsx\n * import { Panel, PanelBody, PanelRow } from '@wordpress/components';\n * import { more } from '@wordpress/icons';\n *\n * const MyPanel = () => (\n * \t<Panel header=\"My Panel\">\n * \t\t<PanelBody title=\"My Block Settings\" icon={ more } initialOpen={ true }>\n * \t\t\t<PanelRow>My Panel Inputs and Labels</PanelRow>\n * \t\t</PanelBody>\n * \t</Panel>\n * );\n * ```\n */\nexport const Panel = forwardRef( UnforwardedPanel );\n\nexport default Panel;\n"]}
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.default = void 0;
8
+ exports.default = exports.PanelRow = void 0;
9
9
 
10
10
  var _element = require("@wordpress/element");
11
11
 
@@ -18,7 +18,7 @@ var _classnames = _interopRequireDefault(require("classnames"));
18
18
  /**
19
19
  * WordPress dependencies
20
20
  */
21
- const PanelRow = (_ref, ref) => {
21
+ function UnforwardedPanelRow(_ref, ref) {
22
22
  let {
23
23
  className,
24
24
  children
@@ -27,9 +27,15 @@ const PanelRow = (_ref, ref) => {
27
27
  className: (0, _classnames.default)('components-panel__row', className),
28
28
  ref: ref
29
29
  }, children);
30
- };
30
+ }
31
+ /**
32
+ * `PanelRow` is a generic container for rows within a `PanelBody`.
33
+ * It is a flex container with a top margin for spacing.
34
+ */
31
35
 
32
- var _default = (0, _element.forwardRef)(PanelRow);
33
36
 
37
+ const PanelRow = (0, _element.forwardRef)(UnforwardedPanelRow);
38
+ exports.PanelRow = PanelRow;
39
+ var _default = PanelRow;
34
40
  exports.default = _default;
35
41
  //# sourceMappingURL=row.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/panel/row.js"],"names":["PanelRow","ref","className","children"],"mappings":";;;;;;;;;AAQA;;AALA;;AAHA;AACA;AACA;;AAGA;AACA;AACA;AAGA,MAAMA,QAAQ,GAAG,OAA2BC,GAA3B;AAAA,MAAE;AAAEC,IAAAA,SAAF;AAAaC,IAAAA;AAAb,GAAF;AAAA,SAChB;AACC,IAAA,SAAS,EAAG,yBAAY,uBAAZ,EAAqCD,SAArC,CADb;AAEC,IAAA,GAAG,EAAGD;AAFP,KAIGE,QAJH,CADgB;AAAA,CAAjB;;eASe,yBAAYH,QAAZ,C","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { forwardRef } from '@wordpress/element';\n\nconst PanelRow = ( { className, children }, ref ) => (\n\t<div\n\t\tclassName={ classnames( 'components-panel__row', className ) }\n\t\tref={ ref }\n\t>\n\t\t{ children }\n\t</div>\n);\n\nexport default forwardRef( PanelRow );\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/panel/row.tsx"],"names":["UnforwardedPanelRow","ref","className","children","PanelRow"],"mappings":";;;;;;;;;AAQA;;AALA;;AAHA;AACA;AACA;;AAGA;AACA;AACA;AASA,SAASA,mBAAT,OAECC,GAFD,EAGE;AAAA,MAFD;AAAEC,IAAAA,SAAF;AAAaC,IAAAA;AAAb,GAEC;AACD,SACC;AACC,IAAA,SAAS,EAAG,yBAAY,uBAAZ,EAAqCD,SAArC,CADb;AAEC,IAAA,GAAG,EAAGD;AAFP,KAIGE,QAJH,CADD;AAQA;AAED;AACA;AACA;AACA;;;AACO,MAAMC,QAAQ,GAAG,yBAAYJ,mBAAZ,CAAjB;;eAEQI,Q","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { forwardRef } from '@wordpress/element';\nimport type { ForwardedRef } from 'react';\n\n/**\n * Internal dependencies\n */\nimport type { PanelRowProps } from './types';\n\nfunction UnforwardedPanelRow(\n\t{ className, children }: PanelRowProps,\n\tref: ForwardedRef< HTMLDivElement >\n) {\n\treturn (\n\t\t<div\n\t\t\tclassName={ classnames( 'components-panel__row', className ) }\n\t\t\tref={ ref }\n\t\t>\n\t\t\t{ children }\n\t\t</div>\n\t);\n}\n\n/**\n * `PanelRow` is a generic container for rows within a `PanelBody`.\n * It is a flex container with a top margin for spacing.\n */\nexport const PanelRow = forwardRef( UnforwardedPanelRow );\n\nexport default PanelRow;\n"]}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[]}
@@ -25,6 +25,8 @@ var _deprecated = _interopRequireDefault(require("@wordpress/deprecated"));
25
25
 
26
26
  var _primitives = require("@wordpress/primitives");
27
27
 
28
+ var _dom = require("@wordpress/dom");
29
+
28
30
  var _button = _interopRequireDefault(require("../button"));
29
31
 
30
32
  var _scrollLock = _interopRequireDefault(require("../scroll-lock"));
@@ -35,6 +37,8 @@ var _utils = require("./utils");
35
37
 
36
38
  var _limitShift = require("./limit-shift");
37
39
 
40
+ var _overlayMiddlewares = require("./overlay-middlewares");
41
+
38
42
  /**
39
43
  * External dependencies
40
44
  */
@@ -200,7 +204,7 @@ const UnforwardedPopover = (props, forwardedRef) => {
200
204
  */
201
205
 
202
206
  const frameOffsetRef = (0, _element.useRef)((0, _utils.getFrameOffset)(referenceOwnerDocument));
203
- const middleware = [// Custom middleware which adjusts the popover's position by taking into
207
+ const middleware = [...(placementProp === 'overlay' ? (0, _overlayMiddlewares.overlayMiddlewares)() : []), // Custom middleware which adjusts the popover's position by taking into
204
208
  // account the offset of the anchor's iframe (if any) compared to the page.
205
209
  {
206
210
  name: 'frameOffset',
@@ -294,7 +298,7 @@ const UnforwardedPopover = (props, forwardedRef) => {
294
298
  arrow: arrowData
295
299
  }
296
300
  } = (0, _reactDom.useFloating)({
297
- placement: normalizedPlacementFromProps,
301
+ placement: normalizedPlacementFromProps === 'overlay' ? undefined : normalizedPlacementFromProps,
298
302
  middleware,
299
303
  whileElementsMounted: (referenceParam, floatingParam, updateParam) => (0, _reactDom.autoUpdate)(referenceParam, floatingParam, updateParam, {
300
304
  animationFrame: true
@@ -319,12 +323,14 @@ const UnforwardedPopover = (props, forwardedRef) => {
319
323
  fallbackReferenceElement,
320
324
  fallbackDocument: document
321
325
  });
326
+ const scale = (0, _utils.getFrameScale)(resultingReferenceOwnerDoc);
322
327
  const resultingReferenceElement = (0, _utils.getReferenceElement)({
323
328
  anchor,
324
329
  anchorRef,
325
330
  anchorRect,
326
331
  getAnchorRect,
327
- fallbackReferenceElement
332
+ fallbackReferenceElement,
333
+ scale
328
334
  });
329
335
  referenceCallbackRef(resultingReferenceElement);
330
336
  setReferenceOwnerDocument(resultingReferenceOwnerDoc);
@@ -347,6 +353,10 @@ const UnforwardedPopover = (props, forwardedRef) => {
347
353
  const {
348
354
  defaultView
349
355
  } = referenceOwnerDocument;
356
+ const {
357
+ frameElement
358
+ } = defaultView;
359
+ const scrollContainer = frameElement ? (0, _dom.getScrollContainer)(frameElement) : null;
350
360
 
351
361
  const updateFrameOffset = () => {
352
362
  frameOffsetRef.current = (0, _utils.getFrameOffset)(referenceOwnerDocument);
@@ -354,9 +364,11 @@ const UnforwardedPopover = (props, forwardedRef) => {
354
364
  };
355
365
 
356
366
  defaultView.addEventListener('resize', updateFrameOffset);
367
+ scrollContainer === null || scrollContainer === void 0 ? void 0 : scrollContainer.addEventListener('scroll', updateFrameOffset);
357
368
  updateFrameOffset();
358
369
  return () => {
359
370
  defaultView.removeEventListener('resize', updateFrameOffset);
371
+ scrollContainer === null || scrollContainer === void 0 ? void 0 : scrollContainer.removeEventListener('scroll', updateFrameOffset);
360
372
  };
361
373
  }, [referenceOwnerDocument, update, refs.floating]);
362
374
  const mergedFloatingRef = (0, _compose.useMergeRefs)([floating, dialogRef, forwardedRef]); // Disable reason: We care to capture the _bubbled_ events from inputs