@wordpress/components 22.1.0 → 23.0.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 (530) hide show
  1. package/CHANGELOG.md +57 -0
  2. package/build/alignment-matrix-control/cell.js.map +1 -1
  3. package/build/alignment-matrix-control/icon.js +4 -2
  4. package/build/alignment-matrix-control/icon.js.map +1 -1
  5. package/build/alignment-matrix-control/index.js +25 -1
  6. package/build/alignment-matrix-control/index.js.map +1 -1
  7. package/build/alignment-matrix-control/styles/alignment-matrix-control-icon-styles.js +13 -13
  8. package/build/alignment-matrix-control/styles/alignment-matrix-control-icon-styles.js.map +1 -1
  9. package/build/alignment-matrix-control/styles/alignment-matrix-control-styles.js +16 -16
  10. package/build/alignment-matrix-control/styles/alignment-matrix-control-styles.js.map +1 -1
  11. package/build/alignment-matrix-control/types.js +6 -0
  12. package/build/alignment-matrix-control/types.js.map +1 -0
  13. package/build/alignment-matrix-control/utils.js +9 -8
  14. package/build/alignment-matrix-control/utils.js.map +1 -1
  15. package/build/angle-picker-control/styles/angle-picker-control-styles.js +9 -9
  16. package/build/angle-picker-control/styles/angle-picker-control-styles.js.map +1 -1
  17. package/build/autocomplete/index.js +38 -9
  18. package/build/autocomplete/index.js.map +1 -1
  19. package/build/base-control/hooks.js +52 -0
  20. package/build/base-control/hooks.js.map +1 -0
  21. package/build/base-control/index.js +24 -7
  22. package/build/base-control/index.js.map +1 -1
  23. package/build/base-field/hook.js +0 -14
  24. package/build/base-field/hook.js.map +1 -1
  25. package/build/base-field/index.js.map +1 -1
  26. package/build/base-field/styles.js +5 -5
  27. package/build/base-field/styles.js.map +1 -1
  28. package/build/base-field/types.js +6 -0
  29. package/build/base-field/types.js.map +1 -0
  30. package/build/border-control/border-control/component.js +1 -0
  31. package/build/border-control/border-control/component.js.map +1 -1
  32. package/build/border-control/styles.js +16 -16
  33. package/build/border-control/styles.js.map +1 -1
  34. package/build/box-control/linked-button.js +3 -4
  35. package/build/box-control/linked-button.js.map +1 -1
  36. package/build/color-palette/index.js +2 -7
  37. package/build/color-palette/index.js.map +1 -1
  38. package/build/color-picker/input-with-slider.js +1 -0
  39. package/build/color-picker/input-with-slider.js.map +1 -1
  40. package/build/color-picker/styles.js +8 -8
  41. package/build/color-picker/styles.js.map +1 -1
  42. package/build/custom-select-control/index.js +14 -2
  43. package/build/custom-select-control/index.js.map +1 -1
  44. package/build/dashicon/index.js +1 -4
  45. package/build/dashicon/index.js.map +1 -1
  46. package/build/date-time/date-time/index.js +4 -4
  47. package/build/date-time/date-time/index.js.map +1 -1
  48. package/build/duotone-picker/duotone-picker.js +2 -2
  49. package/build/duotone-picker/duotone-picker.js.map +1 -1
  50. package/build/gradient-picker/index.js +3 -9
  51. package/build/gradient-picker/index.js.map +1 -1
  52. package/build/higher-order/with-fallback-styles/index.js +2 -2
  53. package/build/higher-order/with-fallback-styles/index.js.map +1 -1
  54. package/build/index.js +13 -1
  55. package/build/index.js.map +1 -1
  56. package/build/input-control/index.js +17 -5
  57. package/build/input-control/index.js.map +1 -1
  58. package/build/input-control/input-base.js +2 -0
  59. package/build/input-control/input-base.js.map +1 -1
  60. package/build/mobile/bottom-sheet/cell.native.js +1 -1
  61. package/build/mobile/bottom-sheet/cell.native.js.map +1 -1
  62. package/build/mobile/bottom-sheet/switch-cell.native.js +1 -3
  63. package/build/mobile/bottom-sheet/switch-cell.native.js.map +1 -1
  64. package/build/mobile/global-styles-context/index.native.js +8 -8
  65. package/build/mobile/global-styles-context/index.native.js.map +1 -1
  66. package/build/mobile/keyboard-aware-flat-list/index.ios.js +4 -2
  67. package/build/mobile/keyboard-aware-flat-list/index.ios.js.map +1 -1
  68. package/build/modal/index.js +8 -0
  69. package/build/modal/index.js.map +1 -1
  70. package/build/navigator/navigator-provider/component.js +12 -8
  71. package/build/navigator/navigator-provider/component.js.map +1 -1
  72. package/build/number-control/styles/number-control-styles.js +8 -8
  73. package/build/number-control/styles/number-control-styles.js.map +1 -1
  74. package/build/palette-edit/index.js +72 -33
  75. package/build/palette-edit/index.js.map +1 -1
  76. package/build/popover/index.js +10 -2
  77. package/build/popover/index.js.map +1 -1
  78. package/build/query-controls/index.js +1 -0
  79. package/build/query-controls/index.js.map +1 -1
  80. package/build/snackbar/index.js +35 -24
  81. package/build/snackbar/index.js.map +1 -1
  82. package/build/snackbar/list.js +14 -19
  83. package/build/snackbar/list.js.map +1 -1
  84. package/build/snackbar/types.js +6 -0
  85. package/build/snackbar/types.js.map +1 -0
  86. package/build/tab-panel/index.js +10 -5
  87. package/build/tab-panel/index.js.map +1 -1
  88. package/build/theme/color-algorithms.js +118 -0
  89. package/build/theme/color-algorithms.js.map +1 -0
  90. package/build/theme/index.js +21 -18
  91. package/build/theme/index.js.map +1 -1
  92. package/build/theme/styles.js +10 -7
  93. package/build/theme/styles.js.map +1 -1
  94. package/build/toggle-control/index.js +5 -2
  95. package/build/toggle-control/index.js.map +1 -1
  96. package/build/ui/context/context-system-provider.js +3 -1
  97. package/build/ui/context/context-system-provider.js.map +1 -1
  98. package/build/unit-control/index.js +5 -2
  99. package/build/unit-control/index.js.map +1 -1
  100. package/build/utils/colors-values.js +1 -1
  101. package/build/utils/colors-values.js.map +1 -1
  102. package/build/utils/config-values.js +0 -2
  103. package/build/utils/config-values.js.map +1 -1
  104. package/build/utils/hooks/use-controlled-value.js.map +1 -1
  105. package/build-module/alignment-matrix-control/cell.js.map +1 -1
  106. package/build-module/alignment-matrix-control/icon.js +4 -2
  107. package/build-module/alignment-matrix-control/icon.js.map +1 -1
  108. package/build-module/alignment-matrix-control/index.js +23 -1
  109. package/build-module/alignment-matrix-control/index.js.map +1 -1
  110. package/build-module/alignment-matrix-control/styles/alignment-matrix-control-icon-styles.js +13 -13
  111. package/build-module/alignment-matrix-control/styles/alignment-matrix-control-icon-styles.js.map +1 -1
  112. package/build-module/alignment-matrix-control/styles/alignment-matrix-control-styles.js +16 -16
  113. package/build-module/alignment-matrix-control/styles/alignment-matrix-control-styles.js.map +1 -1
  114. package/build-module/alignment-matrix-control/types.js +2 -0
  115. package/build-module/alignment-matrix-control/types.js.map +1 -0
  116. package/build-module/alignment-matrix-control/utils.js +13 -8
  117. package/build-module/alignment-matrix-control/utils.js.map +1 -1
  118. package/build-module/angle-picker-control/styles/angle-picker-control-styles.js +9 -9
  119. package/build-module/angle-picker-control/styles/angle-picker-control-styles.js.map +1 -1
  120. package/build-module/autocomplete/index.js +38 -9
  121. package/build-module/autocomplete/index.js.map +1 -1
  122. package/build-module/base-control/hooks.js +41 -0
  123. package/build-module/base-control/hooks.js.map +1 -0
  124. package/build-module/base-control/index.js +18 -8
  125. package/build-module/base-control/index.js.map +1 -1
  126. package/build-module/base-field/hook.js +0 -14
  127. package/build-module/base-field/hook.js.map +1 -1
  128. package/build-module/base-field/index.js.map +1 -1
  129. package/build-module/base-field/styles.js +5 -5
  130. package/build-module/base-field/styles.js.map +1 -1
  131. package/build-module/base-field/types.js +2 -0
  132. package/build-module/base-field/types.js.map +1 -0
  133. package/build-module/border-control/border-control/component.js +1 -0
  134. package/build-module/border-control/border-control/component.js.map +1 -1
  135. package/build-module/border-control/styles.js +17 -17
  136. package/build-module/border-control/styles.js.map +1 -1
  137. package/build-module/box-control/linked-button.js +3 -4
  138. package/build-module/box-control/linked-button.js.map +1 -1
  139. package/build-module/color-palette/index.js +2 -7
  140. package/build-module/color-palette/index.js.map +1 -1
  141. package/build-module/color-picker/input-with-slider.js +1 -0
  142. package/build-module/color-picker/input-with-slider.js.map +1 -1
  143. package/build-module/color-picker/styles.js +8 -8
  144. package/build-module/color-picker/styles.js.map +1 -1
  145. package/build-module/custom-select-control/index.js +14 -2
  146. package/build-module/custom-select-control/index.js.map +1 -1
  147. package/build-module/dashicon/index.js +1 -4
  148. package/build-module/dashicon/index.js.map +1 -1
  149. package/build-module/date-time/date-time/index.js +4 -4
  150. package/build-module/date-time/date-time/index.js.map +1 -1
  151. package/build-module/duotone-picker/duotone-picker.js +2 -2
  152. package/build-module/duotone-picker/duotone-picker.js.map +1 -1
  153. package/build-module/gradient-picker/index.js +3 -8
  154. package/build-module/gradient-picker/index.js.map +1 -1
  155. package/build-module/higher-order/with-fallback-styles/index.js +2 -2
  156. package/build-module/higher-order/with-fallback-styles/index.js.map +1 -1
  157. package/build-module/index.js +2 -2
  158. package/build-module/index.js.map +1 -1
  159. package/build-module/input-control/index.js +16 -5
  160. package/build-module/input-control/index.js.map +1 -1
  161. package/build-module/input-control/input-base.js +2 -0
  162. package/build-module/input-control/input-base.js.map +1 -1
  163. package/build-module/mobile/bottom-sheet/cell.native.js +1 -1
  164. package/build-module/mobile/bottom-sheet/cell.native.js.map +1 -1
  165. package/build-module/mobile/bottom-sheet/switch-cell.native.js +1 -2
  166. package/build-module/mobile/bottom-sheet/switch-cell.native.js.map +1 -1
  167. package/build-module/mobile/global-styles-context/index.native.js +8 -7
  168. package/build-module/mobile/global-styles-context/index.native.js.map +1 -1
  169. package/build-module/mobile/keyboard-aware-flat-list/index.ios.js +2 -2
  170. package/build-module/mobile/keyboard-aware-flat-list/index.ios.js.map +1 -1
  171. package/build-module/modal/index.js +8 -0
  172. package/build-module/modal/index.js.map +1 -1
  173. package/build-module/navigator/navigator-provider/component.js +12 -8
  174. package/build-module/navigator/navigator-provider/component.js.map +1 -1
  175. package/build-module/number-control/styles/number-control-styles.js +8 -10
  176. package/build-module/number-control/styles/number-control-styles.js.map +1 -1
  177. package/build-module/palette-edit/index.js +73 -34
  178. package/build-module/palette-edit/index.js.map +1 -1
  179. package/build-module/popover/index.js +10 -2
  180. package/build-module/popover/index.js.map +1 -1
  181. package/build-module/query-controls/index.js +1 -0
  182. package/build-module/query-controls/index.js.map +1 -1
  183. package/build-module/snackbar/index.js +33 -23
  184. package/build-module/snackbar/index.js.map +1 -1
  185. package/build-module/snackbar/list.js +14 -22
  186. package/build-module/snackbar/list.js.map +1 -1
  187. package/build-module/snackbar/types.js +2 -0
  188. package/build-module/snackbar/types.js.map +1 -0
  189. package/build-module/tab-panel/index.js +10 -5
  190. package/build-module/tab-panel/index.js.map +1 -1
  191. package/build-module/theme/color-algorithms.js +105 -0
  192. package/build-module/theme/color-algorithms.js.map +1 -0
  193. package/build-module/theme/index.js +21 -17
  194. package/build-module/theme/index.js.map +1 -1
  195. package/build-module/theme/styles.js +8 -6
  196. package/build-module/theme/styles.js.map +1 -1
  197. package/build-module/toggle-control/index.js +4 -2
  198. package/build-module/toggle-control/index.js.map +1 -1
  199. package/build-module/ui/context/context-system-provider.js +3 -2
  200. package/build-module/ui/context/context-system-provider.js.map +1 -1
  201. package/build-module/unit-control/index.js +5 -2
  202. package/build-module/unit-control/index.js.map +1 -1
  203. package/build-module/utils/colors-values.js +1 -1
  204. package/build-module/utils/colors-values.js.map +1 -1
  205. package/build-module/utils/config-values.js +0 -2
  206. package/build-module/utils/config-values.js.map +1 -1
  207. package/build-module/utils/hooks/use-controlled-value.js.map +1 -1
  208. package/build-style/style-rtl.css +92 -75
  209. package/build-style/style.css +92 -75
  210. package/build-types/alignment-matrix-control/cell.d.ts +5 -0
  211. package/build-types/alignment-matrix-control/cell.d.ts.map +1 -0
  212. package/build-types/alignment-matrix-control/icon.d.ts +6 -0
  213. package/build-types/alignment-matrix-control/icon.d.ts.map +1 -0
  214. package/build-types/alignment-matrix-control/index.d.ts +30 -0
  215. package/build-types/alignment-matrix-control/index.d.ts.map +1 -0
  216. package/build-types/alignment-matrix-control/stories/index.d.ts +14 -0
  217. package/build-types/alignment-matrix-control/stories/index.d.ts.map +1 -0
  218. package/build-types/alignment-matrix-control/styles/alignment-matrix-control-icon-styles.d.ts +19 -0
  219. package/build-types/alignment-matrix-control/styles/alignment-matrix-control-icon-styles.d.ts.map +1 -0
  220. package/build-types/alignment-matrix-control/styles/alignment-matrix-control-styles.d.ts +23 -0
  221. package/build-types/alignment-matrix-control/styles/alignment-matrix-control-styles.d.ts.map +1 -0
  222. package/build-types/alignment-matrix-control/test/index.d.ts +2 -0
  223. package/build-types/alignment-matrix-control/test/index.d.ts.map +1 -0
  224. package/build-types/alignment-matrix-control/types.d.ts +39 -0
  225. package/build-types/alignment-matrix-control/types.d.ts.map +1 -0
  226. package/build-types/alignment-matrix-control/utils.d.ts +33 -0
  227. package/build-types/alignment-matrix-control/utils.d.ts.map +1 -0
  228. package/build-types/base-control/hooks.d.ts +23 -0
  229. package/build-types/base-control/hooks.d.ts.map +1 -0
  230. package/build-types/base-control/index.d.ts +17 -7
  231. package/build-types/base-control/index.d.ts.map +1 -1
  232. package/build-types/base-control/stories/index.d.ts.map +1 -1
  233. package/build-types/base-control/test/index.d.ts +2 -0
  234. package/build-types/base-control/test/index.d.ts.map +1 -0
  235. package/build-types/base-control/types.d.ts +8 -2
  236. package/build-types/base-control/types.d.ts.map +1 -1
  237. package/build-types/base-field/hook.d.ts +7 -31
  238. package/build-types/base-field/hook.d.ts.map +1 -1
  239. package/build-types/base-field/index.d.ts +1 -1
  240. package/build-types/base-field/index.d.ts.map +1 -1
  241. package/build-types/base-field/styles.d.ts +5 -5
  242. package/build-types/base-field/styles.d.ts.map +1 -1
  243. package/build-types/base-field/test/index.d.ts +2 -0
  244. package/build-types/base-field/test/index.d.ts.map +1 -0
  245. package/build-types/base-field/types.d.ts +29 -0
  246. package/build-types/base-field/types.d.ts.map +1 -0
  247. package/build-types/border-box-control/border-box-control/hook.d.ts +2 -2
  248. package/build-types/border-box-control/border-box-control-linked-button/hook.d.ts +2 -2
  249. package/build-types/border-box-control/border-box-control-split-controls/hook.d.ts +2 -2
  250. package/build-types/border-box-control/border-box-control-visualizer/hook.d.ts +2 -2
  251. package/build-types/border-control/border-control/component.d.ts.map +1 -1
  252. package/build-types/border-control/border-control/hook.d.ts +2 -2
  253. package/build-types/border-control/border-control-dropdown/hook.d.ts +2 -2
  254. package/build-types/border-control/border-control-style-picker/hook.d.ts +2 -2
  255. package/build-types/border-control/styles.d.ts.map +1 -1
  256. package/build-types/card/card/hook.d.ts +2 -2
  257. package/build-types/card/card-body/hook.d.ts +2 -2
  258. package/build-types/card/card-divider/hook.d.ts +2 -2
  259. package/build-types/card/card-footer/hook.d.ts +2 -2
  260. package/build-types/card/card-header/hook.d.ts +2 -2
  261. package/build-types/card/card-media/hook.d.ts +2 -2
  262. package/build-types/color-palette/index.d.ts +2 -2
  263. package/build-types/color-palette/index.d.ts.map +1 -1
  264. package/build-types/color-palette/stories/index.d.ts +6 -7
  265. package/build-types/color-palette/stories/index.d.ts.map +1 -1
  266. package/build-types/color-palette/styles.d.ts +1 -1
  267. package/build-types/color-palette/types.d.ts +1 -1
  268. package/build-types/color-palette/types.d.ts.map +1 -1
  269. package/build-types/color-picker/input-with-slider.d.ts.map +1 -1
  270. package/build-types/color-picker/styles.d.ts +5 -5
  271. package/build-types/color-picker/styles.d.ts.map +1 -1
  272. package/build-types/custom-select-control/index.d.ts.map +1 -1
  273. package/build-types/dashicon/index.d.ts +6 -20
  274. package/build-types/dashicon/index.d.ts.map +1 -1
  275. package/build-types/dashicon/types.d.ts +14 -0
  276. package/build-types/dashicon/types.d.ts.map +1 -1
  277. package/build-types/date-time/date/styles.d.ts +3 -3
  278. package/build-types/date-time/date-time/styles.d.ts +3 -3
  279. package/build-types/date-time/time/styles.d.ts +8 -8
  280. package/build-types/elevation/hook.d.ts +2 -2
  281. package/build-types/external-link/styles/external-link-styles.d.ts +1 -1
  282. package/build-types/flex/flex/hook.d.ts +2 -2
  283. package/build-types/flex/flex-block/hook.d.ts +2 -2
  284. package/build-types/flex/flex-item/hook.d.ts +2 -2
  285. package/build-types/focal-point-picker/styles/focal-point-picker-style.d.ts +2 -5
  286. package/build-types/focal-point-picker/styles/focal-point-picker-style.d.ts.map +1 -1
  287. package/build-types/grid/hook.d.ts +2 -2
  288. package/build-types/h-stack/component.d.ts +1 -1
  289. package/build-types/h-stack/hook.d.ts +2 -2
  290. package/build-types/heading/hook.d.ts +2 -2
  291. package/build-types/input-control/index.d.ts +1 -1
  292. package/build-types/input-control/index.d.ts.map +1 -1
  293. package/build-types/input-control/input-base.d.ts.map +1 -1
  294. package/build-types/input-control/stories/index.d.ts +1 -0
  295. package/build-types/input-control/stories/index.d.ts.map +1 -1
  296. package/build-types/input-control/types.d.ts +2 -1
  297. package/build-types/input-control/types.d.ts.map +1 -1
  298. package/build-types/item-group/item/hook.d.ts +2 -2
  299. package/build-types/item-group/item-group/hook.d.ts +2 -2
  300. package/build-types/modal/index.d.ts.map +1 -1
  301. package/build-types/modal/stories/index.d.ts.map +1 -1
  302. package/build-types/navigator/navigator-back-button/hook.d.ts +3 -3
  303. package/build-types/navigator/navigator-button/hook.d.ts +3 -3
  304. package/build-types/navigator/navigator-provider/component.d.ts.map +1 -1
  305. package/build-types/number-control/index.d.ts +2 -2
  306. package/build-types/number-control/index.d.ts.map +1 -1
  307. package/build-types/number-control/stories/index.d.ts +25 -0
  308. package/build-types/number-control/stories/index.d.ts.map +1 -0
  309. package/build-types/number-control/styles/number-control-styles.d.ts +6 -6
  310. package/build-types/number-control/styles/number-control-styles.d.ts.map +1 -1
  311. package/build-types/number-control/test/index.d.ts +2 -0
  312. package/build-types/number-control/test/index.d.ts.map +1 -0
  313. package/build-types/popover/index.d.ts +1 -1
  314. package/build-types/popover/index.d.ts.map +1 -1
  315. package/build-types/popover/stories/e2e/index.d.ts +1 -1
  316. package/build-types/range-control/index.d.ts +1 -1
  317. package/build-types/range-control/styles/range-control-styles.d.ts +2 -2
  318. package/build-types/resizable-box/resize-tooltip/index.d.ts +15 -19
  319. package/build-types/resizable-box/resize-tooltip/index.d.ts.map +1 -1
  320. package/build-types/resizable-box/resize-tooltip/label.d.ts +4 -3
  321. package/build-types/resizable-box/resize-tooltip/label.d.ts.map +1 -1
  322. package/build-types/scrollable/hook.d.ts +2 -2
  323. package/build-types/search-control/index.d.ts +1 -1
  324. package/build-types/search-control/stories/index.d.ts +2 -2
  325. package/build-types/snackbar/index.d.ts +19 -0
  326. package/build-types/snackbar/index.d.ts.map +1 -0
  327. package/build-types/snackbar/list.d.ts +18 -0
  328. package/build-types/snackbar/list.d.ts.map +1 -0
  329. package/build-types/snackbar/stories/index.d.ts +16 -0
  330. package/build-types/snackbar/stories/index.d.ts.map +1 -0
  331. package/build-types/snackbar/stories/list.d.ts +12 -0
  332. package/build-types/snackbar/stories/list.d.ts.map +1 -0
  333. package/build-types/snackbar/types.d.ts +111 -0
  334. package/build-types/snackbar/types.d.ts.map +1 -0
  335. package/build-types/spacer/hook.d.ts +2 -2
  336. package/build-types/spinner/index.d.ts +1 -1
  337. package/build-types/surface/hook.d.ts +2 -2
  338. package/build-types/tab-panel/index.d.ts +1 -1
  339. package/build-types/tab-panel/index.d.ts.map +1 -1
  340. package/build-types/tab-panel/types.d.ts +19 -1
  341. package/build-types/tab-panel/types.d.ts.map +1 -1
  342. package/build-types/text/hook.d.ts +2 -2
  343. package/build-types/text-control/index.d.ts +2 -2
  344. package/build-types/text-control/stories/index.d.ts.map +1 -1
  345. package/build-types/text-control/types.d.ts +1 -5
  346. package/build-types/text-control/types.d.ts.map +1 -1
  347. package/build-types/theme/color-algorithms.d.ts +20 -0
  348. package/build-types/theme/color-algorithms.d.ts.map +1 -0
  349. package/build-types/theme/index.d.ts +1 -1
  350. package/build-types/theme/index.d.ts.map +1 -1
  351. package/build-types/theme/stories/index.d.ts +4 -0
  352. package/build-types/theme/stories/index.d.ts.map +1 -1
  353. package/build-types/theme/styles.d.ts +3 -2
  354. package/build-types/theme/styles.d.ts.map +1 -1
  355. package/build-types/theme/test/color-algorithms.d.ts +2 -0
  356. package/build-types/theme/test/color-algorithms.d.ts.map +1 -0
  357. package/build-types/theme/types.d.ts +41 -3
  358. package/build-types/theme/types.d.ts.map +1 -1
  359. package/build-types/toggle-control/index.d.ts.map +1 -1
  360. package/build-types/toggle-group-control/toggle-group-control/as-button-group.d.ts +2 -2
  361. package/build-types/toggle-group-control/toggle-group-control/as-radio-group.d.ts +2 -2
  362. package/build-types/toggle-group-control/toggle-group-control-option/component.d.ts +1 -1
  363. package/build-types/toggle-group-control/toggle-group-control-option-icon/component.d.ts +1 -1
  364. package/build-types/tools-panel/tools-panel/hook.d.ts +2 -2
  365. package/build-types/tools-panel/tools-panel-header/hook.d.ts +2 -2
  366. package/build-types/tools-panel/tools-panel-item/hook.d.ts +2 -2
  367. package/build-types/truncate/hook.d.ts +2 -2
  368. package/build-types/ui/context/context-system-provider.d.ts.map +1 -1
  369. package/build-types/ui/control-group/hook.d.ts +2 -2
  370. package/build-types/ui/control-label/hook.d.ts +2 -2
  371. package/build-types/ui/form-group/form-group.d.ts +2 -2
  372. package/build-types/ui/form-group/use-form-group.d.ts +5 -5
  373. package/build-types/unit-control/index.d.ts +2 -1
  374. package/build-types/unit-control/index.d.ts.map +1 -1
  375. package/build-types/unit-control/styles/unit-control-styles.d.ts +2 -2
  376. package/build-types/unit-control/types.d.ts +4 -0
  377. package/build-types/unit-control/types.d.ts.map +1 -1
  378. package/build-types/utils/config-values.d.ts +0 -2
  379. package/build-types/utils/hooks/use-controlled-value.d.ts +2 -1
  380. package/build-types/utils/hooks/use-controlled-value.d.ts.map +1 -1
  381. package/build-types/v-stack/component.d.ts +2 -2
  382. package/build-types/v-stack/hook.d.ts +2 -2
  383. package/build-types/v-stack/stories/index.d.ts +2 -2
  384. package/package.json +21 -20
  385. package/src/alignment-matrix-control/README.md +7 -7
  386. package/src/alignment-matrix-control/{cell.js → cell.tsx} +7 -1
  387. package/src/alignment-matrix-control/{icon.js → icon.tsx} +6 -3
  388. package/src/alignment-matrix-control/{index.js → index.tsx} +31 -4
  389. package/src/alignment-matrix-control/stories/{index.js → index.tsx} +17 -9
  390. package/src/alignment-matrix-control/styles/{alignment-matrix-control-icon-styles.js → alignment-matrix-control-icon-styles.ts} +11 -3
  391. package/src/alignment-matrix-control/styles/{alignment-matrix-control-styles.js → alignment-matrix-control-styles.ts} +13 -3
  392. package/src/alignment-matrix-control/test/{index.js → index.tsx} +5 -5
  393. package/src/alignment-matrix-control/types.ts +54 -0
  394. package/src/alignment-matrix-control/{utils.js → utils.tsx} +24 -14
  395. package/src/angle-picker-control/styles/angle-picker-control-styles.js +4 -0
  396. package/src/autocomplete/index.js +43 -12
  397. package/src/base-control/README.md +21 -12
  398. package/src/base-control/hooks.ts +45 -0
  399. package/src/base-control/index.tsx +18 -7
  400. package/src/base-control/stories/index.tsx +8 -10
  401. package/src/base-control/test/index.tsx +52 -0
  402. package/src/base-control/types.ts +8 -2
  403. package/src/base-field/README.md +21 -22
  404. package/src/base-field/{hook.js → hook.ts} +5 -15
  405. package/src/base-field/{index.js → index.ts} +0 -0
  406. package/src/base-field/{styles.js → styles.ts} +2 -2
  407. package/src/base-field/test/__snapshots__/{index.js.snap → index.tsx.snap} +4 -4
  408. package/src/base-field/test/{index.js → index.tsx} +10 -5
  409. package/src/base-field/types.ts +29 -0
  410. package/src/border-box-control/border-box-control/README.md +1 -0
  411. package/src/border-box-control/test/index.js +3 -1
  412. package/src/border-control/border-control/component.tsx +1 -0
  413. package/src/border-control/styles.ts +1 -10
  414. package/src/box-control/linked-button.js +8 -11
  415. package/src/box-control/test/index.js +206 -135
  416. package/src/button/stories/index.js +30 -0
  417. package/src/button/style.scss +17 -14
  418. package/src/button/test/index.js +32 -15
  419. package/src/card/test/index.tsx +32 -20
  420. package/src/circular-option-picker/style.scss +1 -0
  421. package/src/color-palette/index.tsx +4 -6
  422. package/src/color-palette/stories/index.tsx +1 -5
  423. package/src/color-palette/test/__snapshots__/index.tsx.snap +4 -4
  424. package/src/color-palette/test/index.tsx +84 -36
  425. package/src/color-palette/types.ts +1 -1
  426. package/src/color-picker/README.md +1 -0
  427. package/src/color-picker/input-with-slider.tsx +1 -0
  428. package/src/color-picker/styles.ts +0 -4
  429. package/src/confirm-dialog/README.md +3 -2
  430. package/src/custom-select-control/README.md +14 -0
  431. package/src/custom-select-control/index.js +14 -2
  432. package/src/dashicon/{index.js → index.tsx} +10 -4
  433. package/src/dashicon/types.ts +17 -0
  434. package/src/date-time/date-time/index.tsx +2 -2
  435. package/src/dimension-control/test/__snapshots__/index.test.js.snap +4 -8
  436. package/src/disabled/test/index.tsx +21 -11
  437. package/src/dropdown/test/index.js +39 -49
  438. package/src/dropdown-menu/test/index.js +18 -12
  439. package/src/duotone-picker/duotone-picker.js +2 -2
  440. package/src/focal-point-picker/test/media.js +26 -21
  441. package/src/form-token-field/style.scss +1 -1
  442. package/src/gradient-picker/index.js +5 -8
  443. package/src/grid/test/grid.tsx +31 -31
  444. package/src/higher-order/navigate-regions/style.scss +2 -22
  445. package/src/higher-order/with-fallback-styles/index.js +4 -2
  446. package/src/higher-order/with-filters/test/index.js +94 -101
  447. package/src/higher-order/with-focus-return/test/index.js +1 -4
  448. package/src/index.js +2 -2
  449. package/src/input-control/index.tsx +42 -28
  450. package/src/input-control/input-base.tsx +8 -1
  451. package/src/input-control/stories/index.tsx +6 -0
  452. package/src/input-control/test/index.js +18 -0
  453. package/src/input-control/types.ts +2 -0
  454. package/src/mobile/bottom-sheet/cell.native.js +1 -1
  455. package/src/mobile/bottom-sheet/switch-cell.native.js +2 -2
  456. package/src/mobile/global-styles-context/index.native.js +9 -11
  457. package/src/mobile/keyboard-aware-flat-list/index.ios.js +2 -2
  458. package/src/mobile/link-settings/test/edit.native.js +68 -124
  459. package/src/modal/index.tsx +11 -0
  460. package/src/modal/stories/index.tsx +3 -0
  461. package/src/modal/test/index.tsx +15 -0
  462. package/src/navigation/stories/index.js +6 -6
  463. package/src/navigation/stories/{controlled-state.js → utils/controlled-state.js} +3 -3
  464. package/src/navigation/stories/{default.js → utils/default.js} +3 -3
  465. package/src/navigation/stories/{group.js → utils/group.js} +4 -4
  466. package/src/navigation/stories/{hide-if-empty.js → utils/hide-if-empty.js} +3 -3
  467. package/src/navigation/stories/{more-examples.js → utils/more-examples.js} +4 -4
  468. package/src/navigation/stories/{search.js → utils/search.js} +5 -5
  469. package/src/navigator/navigator-provider/component.tsx +13 -10
  470. package/src/notice/test/list.js +8 -5
  471. package/src/number-control/stories/{index.js → index.tsx} +24 -7
  472. package/src/number-control/styles/{number-control-styles.js → number-control-styles.ts} +5 -3
  473. package/src/number-control/test/index.tsx +600 -0
  474. package/src/palette-edit/index.js +88 -39
  475. package/src/palette-edit/test/index.js +25 -1
  476. package/src/popover/index.tsx +10 -2
  477. package/src/popover/style.scss +12 -11
  478. package/src/popover/test/index.tsx +25 -15
  479. package/src/query-controls/index.js +1 -0
  480. package/src/range-control/test/index.tsx +57 -60
  481. package/src/resizable-box/style.scss +1 -0
  482. package/src/sandbox/test/index.js +13 -11
  483. package/src/search-control/style.scss +4 -0
  484. package/src/snackbar/README.md +63 -8
  485. package/src/snackbar/{index.js → index.tsx} +46 -28
  486. package/src/snackbar/{list.js → list.tsx} +20 -21
  487. package/src/snackbar/stories/index.tsx +96 -0
  488. package/src/snackbar/stories/list.tsx +98 -0
  489. package/src/snackbar/types.ts +116 -0
  490. package/src/tab-panel/README.md +9 -0
  491. package/src/tab-panel/index.tsx +14 -3
  492. package/src/tab-panel/style.scss +46 -34
  493. package/src/tab-panel/test/index.tsx +111 -0
  494. package/src/tab-panel/types.ts +20 -1
  495. package/src/text/test/__snapshots__/index.tsx.snap +1 -0
  496. package/src/text/test/index.tsx +98 -46
  497. package/src/text-control/stories/index.tsx +0 -1
  498. package/src/text-control/types.ts +1 -6
  499. package/src/theme/README.md +32 -2
  500. package/src/theme/color-algorithms.ts +138 -0
  501. package/src/theme/index.tsx +23 -16
  502. package/src/theme/stories/index.tsx +67 -0
  503. package/src/theme/styles.ts +22 -17
  504. package/src/theme/test/color-algorithms.ts +100 -0
  505. package/src/theme/test/index.tsx +68 -35
  506. package/src/theme/types.ts +43 -3
  507. package/src/toggle-control/index.tsx +4 -2
  508. package/src/toggle-group-control/test/index.tsx +13 -2
  509. package/src/toolbar-group/test/index.js +8 -6
  510. package/src/tools-panel/stories/index.js +1 -1
  511. package/src/tools-panel/stories/{tools-panel-with-item-group-slot.js → utils/tools-panel-with-item-group-slot.js} +14 -11
  512. package/src/tools-panel/test/index.js +20 -14
  513. package/src/tooltip/README.md +7 -0
  514. package/src/tooltip/style.scss +2 -2
  515. package/src/tooltip/test/index.js +109 -18
  516. package/src/ui/context/context-system-provider.js +3 -2
  517. package/src/ui/context/test/context-system-provider.js +5 -4
  518. package/src/ui/control-label/test/index.js +3 -5
  519. package/src/unit-control/README.md +9 -1
  520. package/src/unit-control/index.tsx +3 -0
  521. package/src/unit-control/test/index.tsx +1 -0
  522. package/src/unit-control/types.ts +4 -0
  523. package/src/utils/colors-values.js +1 -1
  524. package/src/utils/config-values.js +0 -2
  525. package/src/utils/hooks/use-controlled-value.ts +2 -2
  526. package/src/utils/theme-variables.scss +20 -0
  527. package/tsconfig.json +2 -4
  528. package/tsconfig.tsbuildinfo +1 -1
  529. package/src/number-control/test/index.js +0 -478
  530. package/src/snackbar/stories/index.js +0 -89
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/input-control/index.tsx"],"names":["classNames","useInstanceId","useState","forwardRef","InputBase","InputField","space","useDraft","noop","useUniqueId","idProp","instanceId","InputControl","id","UnforwardedInputControl","ref","__next36pxDefaultSize","__unstableStateReducer","stateReducer","state","__unstableInputWidth","className","disabled","hideLabelFromVision","isPressEnterToChange","label","labelPosition","onChange","onValidate","onKeyDown","prefix","size","style","suffix","value","props","isFocused","setIsFocused","classes","draftHookProps","onBlur","undefined"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classNames from 'classnames';\nimport type { ForwardedRef } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { useInstanceId } from '@wordpress/compose';\nimport { useState, forwardRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport InputBase from './input-base';\nimport InputField from './input-field';\nimport type { InputControlProps } from './types';\nimport { space } from '../ui/utils/space';\nimport { useDraft } from './utils';\n\nconst noop = () => {};\n\nfunction useUniqueId( idProp?: string ) {\n\tconst instanceId = useInstanceId( InputControl );\n\tconst id = `inspector-input-control-${ instanceId }`;\n\n\treturn idProp || id;\n}\n\nexport function UnforwardedInputControl(\n\t{\n\t\t__next36pxDefaultSize,\n\t\t__unstableStateReducer: stateReducer = ( state ) => state,\n\t\t__unstableInputWidth,\n\t\tclassName,\n\t\tdisabled = false,\n\t\thideLabelFromVision = false,\n\t\tid: idProp,\n\t\tisPressEnterToChange = false,\n\t\tlabel,\n\t\tlabelPosition = 'top',\n\t\tonChange = noop,\n\t\tonValidate = noop,\n\t\tonKeyDown = noop,\n\t\tprefix,\n\t\tsize = 'default',\n\t\tstyle,\n\t\tsuffix,\n\t\tvalue,\n\t\t...props\n\t}: InputControlProps,\n\tref: ForwardedRef< HTMLInputElement >\n) {\n\tconst [ isFocused, setIsFocused ] = useState( false );\n\n\tconst id = useUniqueId( idProp );\n\tconst classes = classNames( 'components-input-control', className );\n\n\tconst draftHookProps = useDraft( {\n\t\tvalue,\n\t\tonBlur: props.onBlur,\n\t\tonChange,\n\t} );\n\n\treturn (\n\t\t<InputBase\n\t\t\t__next36pxDefaultSize={ __next36pxDefaultSize }\n\t\t\t__unstableInputWidth={ __unstableInputWidth }\n\t\t\tclassName={ classes }\n\t\t\tdisabled={ disabled }\n\t\t\tgap={ 3 }\n\t\t\thideLabelFromVision={ hideLabelFromVision }\n\t\t\tid={ id }\n\t\t\tisFocused={ isFocused }\n\t\t\tjustify=\"left\"\n\t\t\tlabel={ label }\n\t\t\tlabelPosition={ labelPosition }\n\t\t\tprefix={ prefix }\n\t\t\tsize={ size }\n\t\t\tstyle={ style }\n\t\t\tsuffix={ suffix }\n\t\t>\n\t\t\t<InputField\n\t\t\t\t{ ...props }\n\t\t\t\t__next36pxDefaultSize={ __next36pxDefaultSize }\n\t\t\t\tclassName=\"components-input-control__input\"\n\t\t\t\tdisabled={ disabled }\n\t\t\t\tid={ id }\n\t\t\t\tisFocused={ isFocused }\n\t\t\t\tisPressEnterToChange={ isPressEnterToChange }\n\t\t\t\tonKeyDown={ onKeyDown }\n\t\t\t\tonValidate={ onValidate }\n\t\t\t\tpaddingInlineStart={ prefix ? space( 2 ) : undefined }\n\t\t\t\tpaddingInlineEnd={ suffix ? space( 2 ) : undefined }\n\t\t\t\tref={ ref }\n\t\t\t\tsetIsFocused={ setIsFocused }\n\t\t\t\tsize={ size }\n\t\t\t\tstateReducer={ stateReducer }\n\t\t\t\t{ ...draftHookProps }\n\t\t\t/>\n\t\t</InputBase>\n\t);\n}\n\n/**\n * InputControl components let users enter and edit text. This is an experimental component\n * intended to (in time) merge with or replace `TextControl`.\n *\n * ```jsx\n * import { __experimentalInputControl as InputControl } from '@wordpress/components';\n * import { useState } from '@wordpress/compose';\n *\n * const Example = () => {\n * const [ value, setValue ] = useState( '' );\n *\n * return (\n * \t<InputControl\n * \t\tvalue={ value }\n * \t\tonChange={ ( nextValue ) => setValue( nextValue ?? '' ) }\n * \t/>\n * );\n * };\n * ```\n */\nexport const InputControl = forwardRef( UnforwardedInputControl );\n\nexport default InputControl;\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/input-control/index.tsx"],"names":["classNames","useInstanceId","useState","forwardRef","InputBase","InputField","space","useDraft","BaseControl","noop","useUniqueId","idProp","instanceId","InputControl","id","UnforwardedInputControl","ref","__next36pxDefaultSize","__unstableStateReducer","stateReducer","state","__unstableInputWidth","className","disabled","help","hideLabelFromVision","isPressEnterToChange","label","labelPosition","onChange","onValidate","onKeyDown","prefix","size","style","suffix","value","props","isFocused","setIsFocused","classes","draftHookProps","onBlur","helpPropName","helpProp","undefined"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classNames from 'classnames';\nimport type { ForwardedRef } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { useInstanceId } from '@wordpress/compose';\nimport { useState, forwardRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport InputBase from './input-base';\nimport InputField from './input-field';\nimport type { InputControlProps } from './types';\nimport { space } from '../ui/utils/space';\nimport { useDraft } from './utils';\nimport BaseControl from '../base-control';\n\nconst noop = () => {};\n\nfunction useUniqueId( idProp?: string ) {\n\tconst instanceId = useInstanceId( InputControl );\n\tconst id = `inspector-input-control-${ instanceId }`;\n\n\treturn idProp || id;\n}\n\nexport function UnforwardedInputControl(\n\t{\n\t\t__next36pxDefaultSize,\n\t\t__unstableStateReducer: stateReducer = ( state ) => state,\n\t\t__unstableInputWidth,\n\t\tclassName,\n\t\tdisabled = false,\n\t\thelp,\n\t\thideLabelFromVision = false,\n\t\tid: idProp,\n\t\tisPressEnterToChange = false,\n\t\tlabel,\n\t\tlabelPosition = 'top',\n\t\tonChange = noop,\n\t\tonValidate = noop,\n\t\tonKeyDown = noop,\n\t\tprefix,\n\t\tsize = 'default',\n\t\tstyle,\n\t\tsuffix,\n\t\tvalue,\n\t\t...props\n\t}: InputControlProps,\n\tref: ForwardedRef< HTMLInputElement >\n) {\n\tconst [ isFocused, setIsFocused ] = useState( false );\n\n\tconst id = useUniqueId( idProp );\n\tconst classes = classNames( 'components-input-control', className );\n\n\tconst draftHookProps = useDraft( {\n\t\tvalue,\n\t\tonBlur: props.onBlur,\n\t\tonChange,\n\t} );\n\n\t// ARIA descriptions can only contain plain text, so fall back to aria-details if not.\n\tconst helpPropName =\n\t\ttypeof help === 'string' ? 'aria-describedby' : 'aria-details';\n\tconst helpProp = !! help ? { [ helpPropName ]: `${ id }__help` } : {};\n\n\treturn (\n\t\t<BaseControl\n\t\t\tclassName={ classes }\n\t\t\thelp={ help }\n\t\t\tid={ id }\n\t\t\t__nextHasNoMarginBottom\n\t\t>\n\t\t\t<InputBase\n\t\t\t\t__next36pxDefaultSize={ __next36pxDefaultSize }\n\t\t\t\t__unstableInputWidth={ __unstableInputWidth }\n\t\t\t\tdisabled={ disabled }\n\t\t\t\tgap={ 3 }\n\t\t\t\thideLabelFromVision={ hideLabelFromVision }\n\t\t\t\tid={ id }\n\t\t\t\tisFocused={ isFocused }\n\t\t\t\tjustify=\"left\"\n\t\t\t\tlabel={ label }\n\t\t\t\tlabelPosition={ labelPosition }\n\t\t\t\tprefix={ prefix }\n\t\t\t\tsize={ size }\n\t\t\t\tstyle={ style }\n\t\t\t\tsuffix={ suffix }\n\t\t\t>\n\t\t\t\t<InputField\n\t\t\t\t\t{ ...props }\n\t\t\t\t\t{ ...helpProp }\n\t\t\t\t\t__next36pxDefaultSize={ __next36pxDefaultSize }\n\t\t\t\t\tclassName=\"components-input-control__input\"\n\t\t\t\t\tdisabled={ disabled }\n\t\t\t\t\tid={ id }\n\t\t\t\t\tisFocused={ isFocused }\n\t\t\t\t\tisPressEnterToChange={ isPressEnterToChange }\n\t\t\t\t\tonKeyDown={ onKeyDown }\n\t\t\t\t\tonValidate={ onValidate }\n\t\t\t\t\tpaddingInlineStart={ prefix ? space( 2 ) : undefined }\n\t\t\t\t\tpaddingInlineEnd={ suffix ? space( 2 ) : undefined }\n\t\t\t\t\tref={ ref }\n\t\t\t\t\tsetIsFocused={ setIsFocused }\n\t\t\t\t\tsize={ size }\n\t\t\t\t\tstateReducer={ stateReducer }\n\t\t\t\t\t{ ...draftHookProps }\n\t\t\t\t/>\n\t\t\t</InputBase>\n\t\t</BaseControl>\n\t);\n}\n\n/**\n * InputControl components let users enter and edit text. This is an experimental component\n * intended to (in time) merge with or replace `TextControl`.\n *\n * ```jsx\n * import { __experimentalInputControl as InputControl } from '@wordpress/components';\n * import { useState } from '@wordpress/compose';\n *\n * const Example = () => {\n * const [ value, setValue ] = useState( '' );\n *\n * return (\n * \t<InputControl\n * \t\tvalue={ value }\n * \t\tonChange={ ( nextValue ) => setValue( nextValue ?? '' ) }\n * \t/>\n * );\n * };\n * ```\n */\nexport const InputControl = forwardRef( UnforwardedInputControl );\n\nexport default InputControl;\n"]}
@@ -32,11 +32,13 @@ function getUIFlexProps(labelPosition) {
32
32
  switch (labelPosition) {
33
33
  case 'top':
34
34
  props.direction = 'column';
35
+ props.expanded = false;
35
36
  props.gap = 0;
36
37
  break;
37
38
 
38
39
  case 'bottom':
39
40
  props.direction = 'column-reverse';
41
+ props.expanded = false;
40
42
  props.gap = 0;
41
43
  break;
42
44
 
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/input-control/input-base.tsx"],"names":["useInstanceId","forwardRef","useMemo","Backdrop","Label","Container","Root","Prefix","Suffix","getSizeConfig","ContextSystemProvider","useUniqueId","idProp","instanceId","InputBase","id","getUIFlexProps","labelPosition","props","direction","gap","justify","ref","__next36pxDefaultSize","__unstableInputWidth","children","className","disabled","hideLabelFromVision","isFocused","label","prefix","size","suffix","hideLabel","paddingLeft","paddingRight","inputSize","prefixSuffixContextValue","InputControlPrefixWrapper","InputControlSuffixWrapper"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport type { ForwardedRef } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { useInstanceId } from '@wordpress/compose';\nimport { forwardRef, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport Backdrop from './backdrop';\nimport Label from './label';\nimport {\n\tContainer,\n\tRoot,\n\tPrefix,\n\tSuffix,\n\tgetSizeConfig,\n} from './styles/input-control-styles';\nimport type { InputBaseProps, LabelPosition } from './types';\nimport { ContextSystemProvider, WordPressComponentProps } from '../ui/context';\n\nfunction useUniqueId( idProp?: string ) {\n\tconst instanceId = useInstanceId( InputBase );\n\tconst id = `input-base-control-${ instanceId }`;\n\n\treturn idProp || id;\n}\n\n// Adapter to map props for the new ui/flex component.\nfunction getUIFlexProps( labelPosition?: LabelPosition ) {\n\tconst props: { direction?: string; gap?: number; justify?: string } = {};\n\tswitch ( labelPosition ) {\n\t\tcase 'top':\n\t\t\tprops.direction = 'column';\n\t\t\tprops.gap = 0;\n\t\t\tbreak;\n\t\tcase 'bottom':\n\t\t\tprops.direction = 'column-reverse';\n\t\t\tprops.gap = 0;\n\t\t\tbreak;\n\t\tcase 'edge':\n\t\t\tprops.justify = 'space-between';\n\t\t\tbreak;\n\t}\n\n\treturn props;\n}\n\nexport function InputBase(\n\t{\n\t\t__next36pxDefaultSize,\n\t\t__unstableInputWidth,\n\t\tchildren,\n\t\tclassName,\n\t\tdisabled = false,\n\t\thideLabelFromVision = false,\n\t\tlabelPosition,\n\t\tid: idProp,\n\t\tisFocused = false,\n\t\tlabel,\n\t\tprefix,\n\t\tsize = 'default',\n\t\tsuffix,\n\t\t...props\n\t}: WordPressComponentProps< InputBaseProps, 'div' >,\n\tref: ForwardedRef< HTMLDivElement >\n) {\n\tconst id = useUniqueId( idProp );\n\tconst hideLabel = hideLabelFromVision || ! label;\n\n\tconst { paddingLeft, paddingRight } = getSizeConfig( {\n\t\tinputSize: size,\n\t\t__next36pxDefaultSize,\n\t} );\n\tconst prefixSuffixContextValue = useMemo( () => {\n\t\treturn {\n\t\t\tInputControlPrefixWrapper: { paddingLeft },\n\t\t\tInputControlSuffixWrapper: { paddingRight },\n\t\t};\n\t}, [ paddingLeft, paddingRight ] );\n\n\treturn (\n\t\t// @ts-expect-error The `direction` prop from Flex (FlexDirection) conflicts with legacy SVGAttributes `direction` (string) that come from React intrinsic prop definitions.\n\t\t<Root\n\t\t\t{ ...props }\n\t\t\t{ ...getUIFlexProps( labelPosition ) }\n\t\t\tclassName={ className }\n\t\t\tgap={ 2 }\n\t\t\tisFocused={ isFocused }\n\t\t\tlabelPosition={ labelPosition }\n\t\t\tref={ ref }\n\t\t>\n\t\t\t<Label\n\t\t\t\tclassName=\"components-input-control__label\"\n\t\t\t\thideLabelFromVision={ hideLabelFromVision }\n\t\t\t\tlabelPosition={ labelPosition }\n\t\t\t\thtmlFor={ id }\n\t\t\t>\n\t\t\t\t{ label }\n\t\t\t</Label>\n\t\t\t<Container\n\t\t\t\t__unstableInputWidth={ __unstableInputWidth }\n\t\t\t\tclassName=\"components-input-control__container\"\n\t\t\t\tdisabled={ disabled }\n\t\t\t\thideLabel={ hideLabel }\n\t\t\t\tlabelPosition={ labelPosition }\n\t\t\t>\n\t\t\t\t<ContextSystemProvider value={ prefixSuffixContextValue }>\n\t\t\t\t\t{ prefix && (\n\t\t\t\t\t\t<Prefix className=\"components-input-control__prefix\">\n\t\t\t\t\t\t\t{ prefix }\n\t\t\t\t\t\t</Prefix>\n\t\t\t\t\t) }\n\t\t\t\t\t{ children }\n\t\t\t\t\t{ suffix && (\n\t\t\t\t\t\t<Suffix className=\"components-input-control__suffix\">\n\t\t\t\t\t\t\t{ suffix }\n\t\t\t\t\t\t</Suffix>\n\t\t\t\t\t) }\n\t\t\t\t</ContextSystemProvider>\n\t\t\t\t<Backdrop disabled={ disabled } isFocused={ isFocused } />\n\t\t\t</Container>\n\t\t</Root>\n\t);\n}\n\nexport default forwardRef( InputBase );\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/input-control/input-base.tsx"],"names":["useInstanceId","forwardRef","useMemo","Backdrop","Label","Container","Root","Prefix","Suffix","getSizeConfig","ContextSystemProvider","useUniqueId","idProp","instanceId","InputBase","id","getUIFlexProps","labelPosition","props","direction","expanded","gap","justify","ref","__next36pxDefaultSize","__unstableInputWidth","children","className","disabled","hideLabelFromVision","isFocused","label","prefix","size","suffix","hideLabel","paddingLeft","paddingRight","inputSize","prefixSuffixContextValue","InputControlPrefixWrapper","InputControlSuffixWrapper"],"mappings":";;;AAAA;AACA;AACA;;AAGA;AACA;AACA;AACA,SAASA,aAAT,QAA8B,oBAA9B;AACA,SAASC,UAAT,EAAqBC,OAArB,QAAoC,oBAApC;AAEA;AACA;AACA;;AACA,OAAOC,QAAP,MAAqB,YAArB;AACA,OAAOC,KAAP,MAAkB,SAAlB;AACA,SACCC,SADD,EAECC,IAFD,EAGCC,MAHD,EAICC,MAJD,EAKCC,aALD,QAMO,+BANP;AAQA,SAASC,qBAAT,QAA+D,eAA/D;;AAEA,SAASC,WAAT,CAAsBC,MAAtB,EAAwC;AACvC,QAAMC,UAAU,GAAGb,aAAa,CAAEc,SAAF,CAAhC;AACA,QAAMC,EAAE,GAAI,sBAAsBF,UAAY,EAA9C;AAEA,SAAOD,MAAM,IAAIG,EAAjB;AACA,C,CAED;;;AACA,SAASC,cAAT,CAAyBC,aAAzB,EAAyD;AACxD,QAAMC,KAKL,GAAG,EALJ;;AAMA,UAASD,aAAT;AACC,SAAK,KAAL;AACCC,MAAAA,KAAK,CAACC,SAAN,GAAkB,QAAlB;AACAD,MAAAA,KAAK,CAACE,QAAN,GAAiB,KAAjB;AACAF,MAAAA,KAAK,CAACG,GAAN,GAAY,CAAZ;AACA;;AACD,SAAK,QAAL;AACCH,MAAAA,KAAK,CAACC,SAAN,GAAkB,gBAAlB;AACAD,MAAAA,KAAK,CAACE,QAAN,GAAiB,KAAjB;AACAF,MAAAA,KAAK,CAACG,GAAN,GAAY,CAAZ;AACA;;AACD,SAAK,MAAL;AACCH,MAAAA,KAAK,CAACI,OAAN,GAAgB,eAAhB;AACA;AAbF;;AAgBA,SAAOJ,KAAP;AACA;;AAED,OAAO,SAASJ,SAAT,OAiBNS,GAjBM,EAkBL;AAAA,MAjBD;AACCC,IAAAA,qBADD;AAECC,IAAAA,oBAFD;AAGCC,IAAAA,QAHD;AAICC,IAAAA,SAJD;AAKCC,IAAAA,QAAQ,GAAG,KALZ;AAMCC,IAAAA,mBAAmB,GAAG,KANvB;AAOCZ,IAAAA,aAPD;AAQCF,IAAAA,EAAE,EAAEH,MARL;AASCkB,IAAAA,SAAS,GAAG,KATb;AAUCC,IAAAA,KAVD;AAWCC,IAAAA,MAXD;AAYCC,IAAAA,IAAI,GAAG,SAZR;AAaCC,IAAAA,MAbD;AAcC,OAAGhB;AAdJ,GAiBC;AACD,QAAMH,EAAE,GAAGJ,WAAW,CAAEC,MAAF,CAAtB;AACA,QAAMuB,SAAS,GAAGN,mBAAmB,IAAI,CAAEE,KAA3C;AAEA,QAAM;AAAEK,IAAAA,WAAF;AAAeC,IAAAA;AAAf,MAAgC5B,aAAa,CAAE;AACpD6B,IAAAA,SAAS,EAAEL,IADyC;AAEpDT,IAAAA;AAFoD,GAAF,CAAnD;AAIA,QAAMe,wBAAwB,GAAGrC,OAAO,CAAE,MAAM;AAC/C,WAAO;AACNsC,MAAAA,yBAAyB,EAAE;AAAEJ,QAAAA;AAAF,OADrB;AAENK,MAAAA,yBAAyB,EAAE;AAAEJ,QAAAA;AAAF;AAFrB,KAAP;AAIA,GALuC,EAKrC,CAAED,WAAF,EAAeC,YAAf,CALqC,CAAxC;AAOA,SACC;AACA,kBAAC,IAAD,eACMnB,KADN,EAEMF,cAAc,CAAEC,aAAF,CAFpB;AAGC,MAAA,SAAS,EAAGU,SAHb;AAIC,MAAA,GAAG,EAAG,CAJP;AAKC,MAAA,SAAS,EAAGG,SALb;AAMC,MAAA,aAAa,EAAGb,aANjB;AAOC,MAAA,GAAG,EAAGM;AAPP,QASC,cAAC,KAAD;AACC,MAAA,SAAS,EAAC,iCADX;AAEC,MAAA,mBAAmB,EAAGM,mBAFvB;AAGC,MAAA,aAAa,EAAGZ,aAHjB;AAIC,MAAA,OAAO,EAAGF;AAJX,OAMGgB,KANH,CATD,EAiBC,cAAC,SAAD;AACC,MAAA,oBAAoB,EAAGN,oBADxB;AAEC,MAAA,SAAS,EAAC,qCAFX;AAGC,MAAA,QAAQ,EAAGG,QAHZ;AAIC,MAAA,SAAS,EAAGO,SAJb;AAKC,MAAA,aAAa,EAAGlB;AALjB,OAOC,cAAC,qBAAD;AAAuB,MAAA,KAAK,EAAGsB;AAA/B,OACGP,MAAM,IACP,cAAC,MAAD;AAAQ,MAAA,SAAS,EAAC;AAAlB,OACGA,MADH,CAFF,EAMGN,QANH,EAOGQ,MAAM,IACP,cAAC,MAAD;AAAQ,MAAA,SAAS,EAAC;AAAlB,OACGA,MADH,CARF,CAPD,EAoBC,cAAC,QAAD;AAAU,MAAA,QAAQ,EAAGN,QAArB;AAAgC,MAAA,SAAS,EAAGE;AAA5C,MApBD,CAjBD;AAFD;AA2CA;AAED,eAAe7B,UAAU,CAAEa,SAAF,CAAzB","sourcesContent":["/**\n * External dependencies\n */\nimport type { ForwardedRef } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { useInstanceId } from '@wordpress/compose';\nimport { forwardRef, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport Backdrop from './backdrop';\nimport Label from './label';\nimport {\n\tContainer,\n\tRoot,\n\tPrefix,\n\tSuffix,\n\tgetSizeConfig,\n} from './styles/input-control-styles';\nimport type { InputBaseProps, LabelPosition } from './types';\nimport { ContextSystemProvider, WordPressComponentProps } from '../ui/context';\n\nfunction useUniqueId( idProp?: string ) {\n\tconst instanceId = useInstanceId( InputBase );\n\tconst id = `input-base-control-${ instanceId }`;\n\n\treturn idProp || id;\n}\n\n// Adapter to map props for the new ui/flex component.\nfunction getUIFlexProps( labelPosition?: LabelPosition ) {\n\tconst props: {\n\t\tdirection?: string;\n\t\tgap?: number;\n\t\tjustify?: string;\n\t\texpanded?: boolean;\n\t} = {};\n\tswitch ( labelPosition ) {\n\t\tcase 'top':\n\t\t\tprops.direction = 'column';\n\t\t\tprops.expanded = false;\n\t\t\tprops.gap = 0;\n\t\t\tbreak;\n\t\tcase 'bottom':\n\t\t\tprops.direction = 'column-reverse';\n\t\t\tprops.expanded = false;\n\t\t\tprops.gap = 0;\n\t\t\tbreak;\n\t\tcase 'edge':\n\t\t\tprops.justify = 'space-between';\n\t\t\tbreak;\n\t}\n\n\treturn props;\n}\n\nexport function InputBase(\n\t{\n\t\t__next36pxDefaultSize,\n\t\t__unstableInputWidth,\n\t\tchildren,\n\t\tclassName,\n\t\tdisabled = false,\n\t\thideLabelFromVision = false,\n\t\tlabelPosition,\n\t\tid: idProp,\n\t\tisFocused = false,\n\t\tlabel,\n\t\tprefix,\n\t\tsize = 'default',\n\t\tsuffix,\n\t\t...props\n\t}: WordPressComponentProps< InputBaseProps, 'div' >,\n\tref: ForwardedRef< HTMLDivElement >\n) {\n\tconst id = useUniqueId( idProp );\n\tconst hideLabel = hideLabelFromVision || ! label;\n\n\tconst { paddingLeft, paddingRight } = getSizeConfig( {\n\t\tinputSize: size,\n\t\t__next36pxDefaultSize,\n\t} );\n\tconst prefixSuffixContextValue = useMemo( () => {\n\t\treturn {\n\t\t\tInputControlPrefixWrapper: { paddingLeft },\n\t\t\tInputControlSuffixWrapper: { paddingRight },\n\t\t};\n\t}, [ paddingLeft, paddingRight ] );\n\n\treturn (\n\t\t// @ts-expect-error The `direction` prop from Flex (FlexDirection) conflicts with legacy SVGAttributes `direction` (string) that come from React intrinsic prop definitions.\n\t\t<Root\n\t\t\t{ ...props }\n\t\t\t{ ...getUIFlexProps( labelPosition ) }\n\t\t\tclassName={ className }\n\t\t\tgap={ 2 }\n\t\t\tisFocused={ isFocused }\n\t\t\tlabelPosition={ labelPosition }\n\t\t\tref={ ref }\n\t\t>\n\t\t\t<Label\n\t\t\t\tclassName=\"components-input-control__label\"\n\t\t\t\thideLabelFromVision={ hideLabelFromVision }\n\t\t\t\tlabelPosition={ labelPosition }\n\t\t\t\thtmlFor={ id }\n\t\t\t>\n\t\t\t\t{ label }\n\t\t\t</Label>\n\t\t\t<Container\n\t\t\t\t__unstableInputWidth={ __unstableInputWidth }\n\t\t\t\tclassName=\"components-input-control__container\"\n\t\t\t\tdisabled={ disabled }\n\t\t\t\thideLabel={ hideLabel }\n\t\t\t\tlabelPosition={ labelPosition }\n\t\t\t>\n\t\t\t\t<ContextSystemProvider value={ prefixSuffixContextValue }>\n\t\t\t\t\t{ prefix && (\n\t\t\t\t\t\t<Prefix className=\"components-input-control__prefix\">\n\t\t\t\t\t\t\t{ prefix }\n\t\t\t\t\t\t</Prefix>\n\t\t\t\t\t) }\n\t\t\t\t\t{ children }\n\t\t\t\t\t{ suffix && (\n\t\t\t\t\t\t<Suffix className=\"components-input-control__suffix\">\n\t\t\t\t\t\t\t{ suffix }\n\t\t\t\t\t\t</Suffix>\n\t\t\t\t\t) }\n\t\t\t\t</ContextSystemProvider>\n\t\t\t\t<Backdrop disabled={ disabled } isFocused={ isFocused } />\n\t\t\t</Container>\n\t\t</Root>\n\t);\n}\n\nexport default forwardRef( InputBase );\n"]}
@@ -45,7 +45,7 @@ class BottomSheetCell extends Component {
45
45
  this.isCurrent = true;
46
46
  this.a11yInfoChangeSubscription = AccessibilityInfo.addEventListener('screenReaderChanged', this.handleScreenReaderToggled);
47
47
  AccessibilityInfo.isScreenReaderEnabled().then(isScreenReaderEnabled => {
48
- if (this.isCurrent) {
48
+ if (this.isCurrent && isScreenReaderEnabled) {
49
49
  this.setState({
50
50
  isScreenReaderEnabled
51
51
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/mobile/bottom-sheet/cell.native.js"],"names":["TouchableOpacity","Text","View","TextInput","I18nManager","AccessibilityInfo","Platform","isEmpty","get","Icon","check","Component","__","_x","sprintf","withPreferredColorScheme","styles","platformStyles","TouchableRipple","isIOS","OS","BottomSheetCell","constructor","props","arguments","state","isEditingValue","autoFocus","isScreenReaderEnabled","handleScreenReaderToggled","bind","isCurrent","componentDidUpdate","prevProps","prevState","_valueTextInput","focus","componentDidMount","a11yInfoChangeSubscription","addEventListener","then","setState","componentWillUnmount","remove","typeToKeyboardType","type","step","keyboardType","Math","abs","render","accessible","accessibilityLabel","accessibilityHint","accessibilityRole","disabled","activeOpacity","onPress","onLongPress","label","subLabel","value","valuePlaceholder","icon","leftAlign","iconStyle","labelStyle","valueStyle","cellContainerStyle","cellRowContainerStyle","onChangeValue","onSubmit","children","editable","isSelected","separatorType","style","getStylesFromColorScheme","customActionButton","borderless","help","valueProps","showValue","undefined","isValueEditable","cellLabelStyle","cellLabel","cellTextDark","cellLabelCenteredStyle","cellLabelCentered","cellLabelLeftAlignNoIconStyle","cellLabelLeftAlignNoIcon","defaultMissingIconAndValue","defaultLabelStyle","defaultSubLabelStyleText","cellSubLabelText","cellSubLabelTextDark","drawSeparator","separatorStyle","drawTopSeparator","cellContainerStyles","cellContainer","rowContainerStyles","cellRowContainer","isInteractive","onCellPress","startEditing","finishEditing","defaultSeparatorStyle","separator","separatorDark","cellSeparatorStyle","cellSeparator","cellSeparatorDark","leftMarginStyle","separatorMarginLeft","getValueComponent","styleRTL","isRTL","cellValueRTL","cellValueStyle","cellValue","finalStyle","shouldShowPlaceholder","c","getAccessibilityLabel","iconStyleBase","iconDark","resetButtonStyle","resetButton","resetButtonDark","cellHelpStyle","cellHelpLabel","cellHelpLabelIOS","containerPointerEvents","title","handler","opacity","clipToBounds","cellRowIcon","color","labelIconSeparator","placeholderColor"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport {\n\tTouchableOpacity,\n\tText,\n\tView,\n\tTextInput,\n\tI18nManager,\n\tAccessibilityInfo,\n\tPlatform,\n} from 'react-native';\nimport { isEmpty, get } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { Icon } from '@wordpress/components';\nimport { check } from '@wordpress/icons';\nimport { Component } from '@wordpress/element';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { withPreferredColorScheme } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport styles from './styles.scss';\nimport platformStyles from './cellStyles.scss';\nimport TouchableRipple from './ripple';\n\nconst isIOS = Platform.OS === 'ios';\nclass BottomSheetCell extends Component {\n\tconstructor( props ) {\n\t\tsuper( ...arguments );\n\t\tthis.state = {\n\t\t\tisEditingValue: props.autoFocus || false,\n\t\t\tisScreenReaderEnabled: false,\n\t\t};\n\n\t\tthis.handleScreenReaderToggled =\n\t\t\tthis.handleScreenReaderToggled.bind( this );\n\n\t\tthis.isCurrent = false;\n\t}\n\n\tcomponentDidUpdate( prevProps, prevState ) {\n\t\tif ( ! prevState.isEditingValue && this.state.isEditingValue ) {\n\t\t\tthis._valueTextInput.focus();\n\t\t}\n\t}\n\n\tcomponentDidMount() {\n\t\tthis.isCurrent = true;\n\t\tthis.a11yInfoChangeSubscription = AccessibilityInfo.addEventListener(\n\t\t\t'screenReaderChanged',\n\t\t\tthis.handleScreenReaderToggled\n\t\t);\n\n\t\tAccessibilityInfo.isScreenReaderEnabled().then(\n\t\t\t( isScreenReaderEnabled ) => {\n\t\t\t\tif ( this.isCurrent ) {\n\t\t\t\t\tthis.setState( { isScreenReaderEnabled } );\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t}\n\n\tcomponentWillUnmount() {\n\t\tthis.isCurrent = false;\n\t\tthis.a11yInfoChangeSubscription.remove();\n\t}\n\n\thandleScreenReaderToggled( isScreenReaderEnabled ) {\n\t\tthis.setState( { isScreenReaderEnabled } );\n\t}\n\n\ttypeToKeyboardType( type, step ) {\n\t\tlet keyboardType = `default`;\n\t\tif ( type === `number` ) {\n\t\t\tif ( step && Math.abs( step ) < 1 ) {\n\t\t\t\tkeyboardType = `decimal-pad`;\n\t\t\t} else {\n\t\t\t\tkeyboardType = `number-pad`;\n\t\t\t}\n\t\t}\n\t\treturn keyboardType;\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\taccessible,\n\t\t\taccessibilityLabel,\n\t\t\taccessibilityHint,\n\t\t\taccessibilityRole,\n\t\t\tdisabled = false,\n\t\t\tactiveOpacity,\n\t\t\tonPress,\n\t\t\tonLongPress,\n\t\t\tlabel,\n\t\t\tsubLabel,\n\t\t\tvalue,\n\t\t\tvaluePlaceholder = '',\n\t\t\ticon,\n\t\t\tleftAlign,\n\t\t\ticonStyle = {},\n\t\t\tlabelStyle = {},\n\t\t\tvalueStyle = {},\n\t\t\tcellContainerStyle = {},\n\t\t\tcellRowContainerStyle = {},\n\t\t\tonChangeValue,\n\t\t\tonSubmit,\n\t\t\tchildren,\n\t\t\teditable = true,\n\t\t\tisSelected = false,\n\t\t\tseparatorType,\n\t\t\tstyle = {},\n\t\t\tgetStylesFromColorScheme,\n\t\t\tcustomActionButton,\n\t\t\ttype,\n\t\t\tstep,\n\t\t\tborderless,\n\t\t\thelp,\n\t\t\t...valueProps\n\t\t} = this.props;\n\n\t\tconst showValue = value !== undefined;\n\t\tconst isValueEditable = editable && onChangeValue !== undefined;\n\t\tconst cellLabelStyle = getStylesFromColorScheme(\n\t\t\tstyles.cellLabel,\n\t\t\tstyles.cellTextDark\n\t\t);\n\t\tconst cellLabelCenteredStyle = getStylesFromColorScheme(\n\t\t\tstyles.cellLabelCentered,\n\t\t\tstyles.cellTextDark\n\t\t);\n\t\tconst cellLabelLeftAlignNoIconStyle = getStylesFromColorScheme(\n\t\t\tstyles.cellLabelLeftAlignNoIcon,\n\t\t\tstyles.cellTextDark\n\t\t);\n\t\tconst defaultMissingIconAndValue = leftAlign\n\t\t\t? cellLabelLeftAlignNoIconStyle\n\t\t\t: cellLabelCenteredStyle;\n\t\tconst defaultLabelStyle =\n\t\t\tshowValue || customActionButton || icon\n\t\t\t\t? cellLabelStyle\n\t\t\t\t: defaultMissingIconAndValue;\n\n\t\tconst defaultSubLabelStyleText = getStylesFromColorScheme(\n\t\t\tstyles.cellSubLabelText,\n\t\t\tstyles.cellSubLabelTextDark\n\t\t);\n\n\t\tconst drawSeparator =\n\t\t\t( separatorType && separatorType !== 'none' ) ||\n\t\t\tseparatorStyle === undefined;\n\t\tconst drawTopSeparator =\n\t\t\tdrawSeparator && separatorType === 'topFullWidth';\n\n\t\tconst cellContainerStyles = [\n\t\t\tstyles.cellContainer,\n\t\t\tcellContainerStyle,\n\t\t];\n\t\tconst rowContainerStyles = [\n\t\t\tstyles.cellRowContainer,\n\t\t\tcellRowContainerStyle,\n\t\t];\n\n\t\tconst isInteractive =\n\t\t\tisValueEditable ||\n\t\t\tonPress !== undefined ||\n\t\t\tonLongPress !== undefined;\n\n\t\tconst onCellPress = () => {\n\t\t\tif ( isValueEditable ) {\n\t\t\t\tstartEditing();\n\t\t\t} else if ( onPress !== undefined ) {\n\t\t\t\tonPress();\n\t\t\t}\n\t\t};\n\n\t\tconst finishEditing = () => {\n\t\t\tthis.setState( { isEditingValue: false } );\n\t\t};\n\n\t\tconst startEditing = () => {\n\t\t\tif ( this.state.isEditingValue === false ) {\n\t\t\t\tthis.setState( { isEditingValue: true } );\n\t\t\t}\n\t\t};\n\n\t\tconst separatorStyle = () => {\n\t\t\t// eslint-disable-next-line @wordpress/no-unused-vars-before-return\n\t\t\tconst defaultSeparatorStyle = this.props.getStylesFromColorScheme(\n\t\t\t\tstyles.separator,\n\t\t\t\tstyles.separatorDark\n\t\t\t);\n\t\t\tconst cellSeparatorStyle = this.props.getStylesFromColorScheme(\n\t\t\t\tstyles.cellSeparator,\n\t\t\t\tstyles.cellSeparatorDark\n\t\t\t);\n\t\t\tconst leftMarginStyle = {\n\t\t\t\t...cellSeparatorStyle,\n\t\t\t\t...platformStyles.separatorMarginLeft,\n\t\t\t};\n\t\t\tswitch ( separatorType ) {\n\t\t\t\tcase 'leftMargin':\n\t\t\t\t\treturn leftMarginStyle;\n\t\t\t\tcase 'fullWidth':\n\t\t\t\tcase 'topFullWidth':\n\t\t\t\t\treturn defaultSeparatorStyle;\n\t\t\t\tcase 'none':\n\t\t\t\t\treturn undefined;\n\t\t\t\tcase undefined:\n\t\t\t\t\tif ( showValue && icon ) {\n\t\t\t\t\t\treturn leftMarginStyle;\n\t\t\t\t\t}\n\t\t\t\t\treturn defaultSeparatorStyle;\n\t\t\t}\n\t\t};\n\n\t\tconst getValueComponent = () => {\n\t\t\tconst styleRTL = I18nManager.isRTL && styles.cellValueRTL;\n\t\t\tconst cellValueStyle = this.props.getStylesFromColorScheme(\n\t\t\t\tstyles.cellValue,\n\t\t\t\tstyles.cellTextDark\n\t\t\t);\n\t\t\tconst finalStyle = {\n\t\t\t\t...cellValueStyle,\n\t\t\t\t...valueStyle,\n\t\t\t\t...styleRTL,\n\t\t\t};\n\n\t\t\t// To be able to show the `middle` ellipsizeMode on editable cells\n\t\t\t// we show the TextInput just when the user wants to edit the value,\n\t\t\t// and the Text component to display it.\n\t\t\t// We also show the TextInput to display placeholder.\n\t\t\tconst shouldShowPlaceholder = isValueEditable && value === '';\n\t\t\treturn this.state.isEditingValue || shouldShowPlaceholder ? (\n\t\t\t\t<TextInput\n\t\t\t\t\tref={ ( c ) => ( this._valueTextInput = c ) }\n\t\t\t\t\tnumberOfLines={ 1 }\n\t\t\t\t\tstyle={ finalStyle }\n\t\t\t\t\tvalue={ value }\n\t\t\t\t\tplaceholder={ valuePlaceholder }\n\t\t\t\t\tplaceholderTextColor={ '#87a6bc' }\n\t\t\t\t\tonChangeText={ onChangeValue }\n\t\t\t\t\teditable={ isValueEditable }\n\t\t\t\t\tpointerEvents={\n\t\t\t\t\t\tthis.state.isEditingValue ? 'auto' : 'none'\n\t\t\t\t\t}\n\t\t\t\t\tonFocus={ startEditing }\n\t\t\t\t\tonBlur={ finishEditing }\n\t\t\t\t\tonSubmitEditing={ onSubmit }\n\t\t\t\t\tkeyboardType={ this.typeToKeyboardType( type, step ) }\n\t\t\t\t\t{ ...valueProps }\n\t\t\t\t/>\n\t\t\t) : (\n\t\t\t\t<Text\n\t\t\t\t\tstyle={ { ...cellValueStyle, ...valueStyle } }\n\t\t\t\t\tnumberOfLines={ 1 }\n\t\t\t\t\tellipsizeMode={ 'middle' }\n\t\t\t\t>\n\t\t\t\t\t{ value }\n\t\t\t\t</Text>\n\t\t\t);\n\t\t};\n\n\t\tconst getAccessibilityLabel = () => {\n\t\t\tif ( accessible === false ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif ( accessibilityLabel || ! showValue ) {\n\t\t\t\treturn accessibilityLabel || label;\n\t\t\t}\n\n\t\t\tif ( isEmpty( value ) ) {\n\t\t\t\treturn isEmpty( help )\n\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t/* translators: accessibility text. Empty state of a inline textinput cell. %s: The cell's title */\n\t\t\t\t\t\t\t_x( '%s. Empty', 'inline textinput cell' ),\n\t\t\t\t\t\t\tlabel\n\t\t\t\t\t )\n\t\t\t\t\t: // Separating by ',' is necessary to make a pause on urls (non-capitalized text)\n\t\t\t\t\t sprintf(\n\t\t\t\t\t\t\t/* translators: accessibility text. Empty state of a inline textinput cell. %1: Cell title, %2: cell help. */\n\t\t\t\t\t\t\t_x( '%1$s, %2$s. Empty', 'inline textinput cell' ),\n\t\t\t\t\t\t\tlabel,\n\t\t\t\t\t\t\thelp\n\t\t\t\t\t );\n\t\t\t}\n\t\t\treturn isEmpty( help )\n\t\t\t\t? sprintf(\n\t\t\t\t\t\t/* translators: accessibility text. Inline textinput title and value.%1: Cell title, %2: cell value. */\n\t\t\t\t\t\t_x( '%1$s, %2$s', 'inline textinput cell' ),\n\t\t\t\t\t\tlabel,\n\t\t\t\t\t\tvalue\n\t\t\t\t ) // Separating by ',' is necessary to make a pause on urls (non-capitalized text)\n\t\t\t\t: sprintf(\n\t\t\t\t\t\t/* translators: accessibility text. Inline textinput title, value and help text.%1: Cell title, %2: cell value, , %3: cell help. */\n\t\t\t\t\t\t_x( '%1$s, %2$s, %3$s', 'inline textinput cell' ),\n\t\t\t\t\t\tlabel,\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\thelp\n\t\t\t\t );\n\t\t};\n\n\t\tconst iconStyleBase = getStylesFromColorScheme(\n\t\t\tstyles.icon,\n\t\t\tstyles.iconDark\n\t\t);\n\t\tconst resetButtonStyle = getStylesFromColorScheme(\n\t\t\tstyles.resetButton,\n\t\t\tstyles.resetButtonDark\n\t\t);\n\t\tconst cellHelpStyle = [\n\t\t\tstyles.cellHelpLabel,\n\t\t\tisIOS && styles.cellHelpLabelIOS,\n\t\t];\n\t\tconst containerPointerEvents =\n\t\t\tthis.state.isScreenReaderEnabled && accessible ? 'none' : 'auto';\n\t\tconst { title, handler } = customActionButton || {};\n\n\t\tconst opacity =\n\t\t\tactiveOpacity !== undefined\n\t\t\t\t? activeOpacity\n\t\t\t\t: get( platformStyles, 'activeOpacity.opacity' );\n\n\t\treturn (\n\t\t\t<TouchableRipple\n\t\t\t\taccessible={\n\t\t\t\t\taccessible !== undefined\n\t\t\t\t\t\t? accessible\n\t\t\t\t\t\t: ! this.state.isEditingValue\n\t\t\t\t}\n\t\t\t\taccessibilityLabel={ getAccessibilityLabel() }\n\t\t\t\taccessibilityRole={ accessibilityRole || 'button' }\n\t\t\t\taccessibilityHint={\n\t\t\t\t\tisValueEditable\n\t\t\t\t\t\t? /* translators: accessibility text */\n\t\t\t\t\t\t __( 'Double tap to edit this value' )\n\t\t\t\t\t\t: accessibilityHint\n\t\t\t\t}\n\t\t\t\tdisabled={ disabled || ! isInteractive }\n\t\t\t\tactiveOpacity={ opacity }\n\t\t\t\tonPress={ onCellPress }\n\t\t\t\tonLongPress={ onLongPress }\n\t\t\t\tstyle={ [ styles.clipToBounds, style ] }\n\t\t\t\tborderless={ borderless }\n\t\t\t>\n\t\t\t\t{ drawTopSeparator && <View style={ separatorStyle() } /> }\n\t\t\t\t<View\n\t\t\t\t\tstyle={ cellContainerStyles }\n\t\t\t\t\tpointerEvents={ containerPointerEvents }\n\t\t\t\t>\n\t\t\t\t\t<View style={ rowContainerStyles }>\n\t\t\t\t\t\t<View style={ styles.cellRowContainer }>\n\t\t\t\t\t\t\t{ icon && (\n\t\t\t\t\t\t\t\t<View\n\t\t\t\t\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t\t\t\t\tstyles.cellRowContainer,\n\t\t\t\t\t\t\t\t\t\tstyles.cellRowIcon,\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\t\t<Icon\n\t\t\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\t\t\tsize={ 24 }\n\t\t\t\t\t\t\t\t\t\tfill={\n\t\t\t\t\t\t\t\t\t\t\ticonStyle.color ||\n\t\t\t\t\t\t\t\t\t\t\ticonStyleBase.color\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tstyle={ iconStyle }\n\t\t\t\t\t\t\t\t\t\tisPressed={ false }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<View\n\t\t\t\t\t\t\t\t\t\tstyle={\n\t\t\t\t\t\t\t\t\t\t\tplatformStyles.labelIconSeparator\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</View>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ subLabel && label && (\n\t\t\t\t\t\t\t\t<View>\n\t\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t\t\t\t\t\tdefaultLabelStyle,\n\t\t\t\t\t\t\t\t\t\t\tlabelStyle,\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\t\t{ label }\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t<Text style={ defaultSubLabelStyleText }>\n\t\t\t\t\t\t\t\t\t\t{ subLabel }\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ ! subLabel && label && (\n\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\tstyle={ [ defaultLabelStyle, labelStyle ] }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ label }\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</View>\n\t\t\t\t\t\t{ customActionButton && (\n\t\t\t\t\t\t\t<TouchableOpacity\n\t\t\t\t\t\t\t\tonPress={ handler }\n\t\t\t\t\t\t\t\taccessibilityRole={ 'button' }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Text style={ resetButtonStyle }>\n\t\t\t\t\t\t\t\t\t{ title }\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t</TouchableOpacity>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</View>\n\t\t\t\t\t{ isSelected && (\n\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\ticon={ check }\n\t\t\t\t\t\t\tfill={ platformStyles.isSelected.color }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ showValue && getValueComponent() }\n\t\t\t\t\t{ children }\n\t\t\t\t</View>\n\t\t\t\t{ help && (\n\t\t\t\t\t<Text style={ [ cellHelpStyle, styles.placeholderColor ] }>\n\t\t\t\t\t\t{ help }\n\t\t\t\t\t</Text>\n\t\t\t\t) }\n\t\t\t\t{ ! drawTopSeparator && <View style={ separatorStyle() } /> }\n\t\t\t</TouchableRipple>\n\t\t);\n\t}\n}\n\nexport default withPreferredColorScheme( BottomSheetCell );\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/mobile/bottom-sheet/cell.native.js"],"names":["TouchableOpacity","Text","View","TextInput","I18nManager","AccessibilityInfo","Platform","isEmpty","get","Icon","check","Component","__","_x","sprintf","withPreferredColorScheme","styles","platformStyles","TouchableRipple","isIOS","OS","BottomSheetCell","constructor","props","arguments","state","isEditingValue","autoFocus","isScreenReaderEnabled","handleScreenReaderToggled","bind","isCurrent","componentDidUpdate","prevProps","prevState","_valueTextInput","focus","componentDidMount","a11yInfoChangeSubscription","addEventListener","then","setState","componentWillUnmount","remove","typeToKeyboardType","type","step","keyboardType","Math","abs","render","accessible","accessibilityLabel","accessibilityHint","accessibilityRole","disabled","activeOpacity","onPress","onLongPress","label","subLabel","value","valuePlaceholder","icon","leftAlign","iconStyle","labelStyle","valueStyle","cellContainerStyle","cellRowContainerStyle","onChangeValue","onSubmit","children","editable","isSelected","separatorType","style","getStylesFromColorScheme","customActionButton","borderless","help","valueProps","showValue","undefined","isValueEditable","cellLabelStyle","cellLabel","cellTextDark","cellLabelCenteredStyle","cellLabelCentered","cellLabelLeftAlignNoIconStyle","cellLabelLeftAlignNoIcon","defaultMissingIconAndValue","defaultLabelStyle","defaultSubLabelStyleText","cellSubLabelText","cellSubLabelTextDark","drawSeparator","separatorStyle","drawTopSeparator","cellContainerStyles","cellContainer","rowContainerStyles","cellRowContainer","isInteractive","onCellPress","startEditing","finishEditing","defaultSeparatorStyle","separator","separatorDark","cellSeparatorStyle","cellSeparator","cellSeparatorDark","leftMarginStyle","separatorMarginLeft","getValueComponent","styleRTL","isRTL","cellValueRTL","cellValueStyle","cellValue","finalStyle","shouldShowPlaceholder","c","getAccessibilityLabel","iconStyleBase","iconDark","resetButtonStyle","resetButton","resetButtonDark","cellHelpStyle","cellHelpLabel","cellHelpLabelIOS","containerPointerEvents","title","handler","opacity","clipToBounds","cellRowIcon","color","labelIconSeparator","placeholderColor"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport {\n\tTouchableOpacity,\n\tText,\n\tView,\n\tTextInput,\n\tI18nManager,\n\tAccessibilityInfo,\n\tPlatform,\n} from 'react-native';\nimport { isEmpty, get } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { Icon } from '@wordpress/components';\nimport { check } from '@wordpress/icons';\nimport { Component } from '@wordpress/element';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { withPreferredColorScheme } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport styles from './styles.scss';\nimport platformStyles from './cellStyles.scss';\nimport TouchableRipple from './ripple';\n\nconst isIOS = Platform.OS === 'ios';\nclass BottomSheetCell extends Component {\n\tconstructor( props ) {\n\t\tsuper( ...arguments );\n\t\tthis.state = {\n\t\t\tisEditingValue: props.autoFocus || false,\n\t\t\tisScreenReaderEnabled: false,\n\t\t};\n\n\t\tthis.handleScreenReaderToggled =\n\t\t\tthis.handleScreenReaderToggled.bind( this );\n\n\t\tthis.isCurrent = false;\n\t}\n\n\tcomponentDidUpdate( prevProps, prevState ) {\n\t\tif ( ! prevState.isEditingValue && this.state.isEditingValue ) {\n\t\t\tthis._valueTextInput.focus();\n\t\t}\n\t}\n\n\tcomponentDidMount() {\n\t\tthis.isCurrent = true;\n\t\tthis.a11yInfoChangeSubscription = AccessibilityInfo.addEventListener(\n\t\t\t'screenReaderChanged',\n\t\t\tthis.handleScreenReaderToggled\n\t\t);\n\n\t\tAccessibilityInfo.isScreenReaderEnabled().then(\n\t\t\t( isScreenReaderEnabled ) => {\n\t\t\t\tif ( this.isCurrent && isScreenReaderEnabled ) {\n\t\t\t\t\tthis.setState( { isScreenReaderEnabled } );\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t}\n\n\tcomponentWillUnmount() {\n\t\tthis.isCurrent = false;\n\t\tthis.a11yInfoChangeSubscription.remove();\n\t}\n\n\thandleScreenReaderToggled( isScreenReaderEnabled ) {\n\t\tthis.setState( { isScreenReaderEnabled } );\n\t}\n\n\ttypeToKeyboardType( type, step ) {\n\t\tlet keyboardType = `default`;\n\t\tif ( type === `number` ) {\n\t\t\tif ( step && Math.abs( step ) < 1 ) {\n\t\t\t\tkeyboardType = `decimal-pad`;\n\t\t\t} else {\n\t\t\t\tkeyboardType = `number-pad`;\n\t\t\t}\n\t\t}\n\t\treturn keyboardType;\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\taccessible,\n\t\t\taccessibilityLabel,\n\t\t\taccessibilityHint,\n\t\t\taccessibilityRole,\n\t\t\tdisabled = false,\n\t\t\tactiveOpacity,\n\t\t\tonPress,\n\t\t\tonLongPress,\n\t\t\tlabel,\n\t\t\tsubLabel,\n\t\t\tvalue,\n\t\t\tvaluePlaceholder = '',\n\t\t\ticon,\n\t\t\tleftAlign,\n\t\t\ticonStyle = {},\n\t\t\tlabelStyle = {},\n\t\t\tvalueStyle = {},\n\t\t\tcellContainerStyle = {},\n\t\t\tcellRowContainerStyle = {},\n\t\t\tonChangeValue,\n\t\t\tonSubmit,\n\t\t\tchildren,\n\t\t\teditable = true,\n\t\t\tisSelected = false,\n\t\t\tseparatorType,\n\t\t\tstyle = {},\n\t\t\tgetStylesFromColorScheme,\n\t\t\tcustomActionButton,\n\t\t\ttype,\n\t\t\tstep,\n\t\t\tborderless,\n\t\t\thelp,\n\t\t\t...valueProps\n\t\t} = this.props;\n\n\t\tconst showValue = value !== undefined;\n\t\tconst isValueEditable = editable && onChangeValue !== undefined;\n\t\tconst cellLabelStyle = getStylesFromColorScheme(\n\t\t\tstyles.cellLabel,\n\t\t\tstyles.cellTextDark\n\t\t);\n\t\tconst cellLabelCenteredStyle = getStylesFromColorScheme(\n\t\t\tstyles.cellLabelCentered,\n\t\t\tstyles.cellTextDark\n\t\t);\n\t\tconst cellLabelLeftAlignNoIconStyle = getStylesFromColorScheme(\n\t\t\tstyles.cellLabelLeftAlignNoIcon,\n\t\t\tstyles.cellTextDark\n\t\t);\n\t\tconst defaultMissingIconAndValue = leftAlign\n\t\t\t? cellLabelLeftAlignNoIconStyle\n\t\t\t: cellLabelCenteredStyle;\n\t\tconst defaultLabelStyle =\n\t\t\tshowValue || customActionButton || icon\n\t\t\t\t? cellLabelStyle\n\t\t\t\t: defaultMissingIconAndValue;\n\n\t\tconst defaultSubLabelStyleText = getStylesFromColorScheme(\n\t\t\tstyles.cellSubLabelText,\n\t\t\tstyles.cellSubLabelTextDark\n\t\t);\n\n\t\tconst drawSeparator =\n\t\t\t( separatorType && separatorType !== 'none' ) ||\n\t\t\tseparatorStyle === undefined;\n\t\tconst drawTopSeparator =\n\t\t\tdrawSeparator && separatorType === 'topFullWidth';\n\n\t\tconst cellContainerStyles = [\n\t\t\tstyles.cellContainer,\n\t\t\tcellContainerStyle,\n\t\t];\n\t\tconst rowContainerStyles = [\n\t\t\tstyles.cellRowContainer,\n\t\t\tcellRowContainerStyle,\n\t\t];\n\n\t\tconst isInteractive =\n\t\t\tisValueEditable ||\n\t\t\tonPress !== undefined ||\n\t\t\tonLongPress !== undefined;\n\n\t\tconst onCellPress = () => {\n\t\t\tif ( isValueEditable ) {\n\t\t\t\tstartEditing();\n\t\t\t} else if ( onPress !== undefined ) {\n\t\t\t\tonPress();\n\t\t\t}\n\t\t};\n\n\t\tconst finishEditing = () => {\n\t\t\tthis.setState( { isEditingValue: false } );\n\t\t};\n\n\t\tconst startEditing = () => {\n\t\t\tif ( this.state.isEditingValue === false ) {\n\t\t\t\tthis.setState( { isEditingValue: true } );\n\t\t\t}\n\t\t};\n\n\t\tconst separatorStyle = () => {\n\t\t\t// eslint-disable-next-line @wordpress/no-unused-vars-before-return\n\t\t\tconst defaultSeparatorStyle = this.props.getStylesFromColorScheme(\n\t\t\t\tstyles.separator,\n\t\t\t\tstyles.separatorDark\n\t\t\t);\n\t\t\tconst cellSeparatorStyle = this.props.getStylesFromColorScheme(\n\t\t\t\tstyles.cellSeparator,\n\t\t\t\tstyles.cellSeparatorDark\n\t\t\t);\n\t\t\tconst leftMarginStyle = {\n\t\t\t\t...cellSeparatorStyle,\n\t\t\t\t...platformStyles.separatorMarginLeft,\n\t\t\t};\n\t\t\tswitch ( separatorType ) {\n\t\t\t\tcase 'leftMargin':\n\t\t\t\t\treturn leftMarginStyle;\n\t\t\t\tcase 'fullWidth':\n\t\t\t\tcase 'topFullWidth':\n\t\t\t\t\treturn defaultSeparatorStyle;\n\t\t\t\tcase 'none':\n\t\t\t\t\treturn undefined;\n\t\t\t\tcase undefined:\n\t\t\t\t\tif ( showValue && icon ) {\n\t\t\t\t\t\treturn leftMarginStyle;\n\t\t\t\t\t}\n\t\t\t\t\treturn defaultSeparatorStyle;\n\t\t\t}\n\t\t};\n\n\t\tconst getValueComponent = () => {\n\t\t\tconst styleRTL = I18nManager.isRTL && styles.cellValueRTL;\n\t\t\tconst cellValueStyle = this.props.getStylesFromColorScheme(\n\t\t\t\tstyles.cellValue,\n\t\t\t\tstyles.cellTextDark\n\t\t\t);\n\t\t\tconst finalStyle = {\n\t\t\t\t...cellValueStyle,\n\t\t\t\t...valueStyle,\n\t\t\t\t...styleRTL,\n\t\t\t};\n\n\t\t\t// To be able to show the `middle` ellipsizeMode on editable cells\n\t\t\t// we show the TextInput just when the user wants to edit the value,\n\t\t\t// and the Text component to display it.\n\t\t\t// We also show the TextInput to display placeholder.\n\t\t\tconst shouldShowPlaceholder = isValueEditable && value === '';\n\t\t\treturn this.state.isEditingValue || shouldShowPlaceholder ? (\n\t\t\t\t<TextInput\n\t\t\t\t\tref={ ( c ) => ( this._valueTextInput = c ) }\n\t\t\t\t\tnumberOfLines={ 1 }\n\t\t\t\t\tstyle={ finalStyle }\n\t\t\t\t\tvalue={ value }\n\t\t\t\t\tplaceholder={ valuePlaceholder }\n\t\t\t\t\tplaceholderTextColor={ '#87a6bc' }\n\t\t\t\t\tonChangeText={ onChangeValue }\n\t\t\t\t\teditable={ isValueEditable }\n\t\t\t\t\tpointerEvents={\n\t\t\t\t\t\tthis.state.isEditingValue ? 'auto' : 'none'\n\t\t\t\t\t}\n\t\t\t\t\tonFocus={ startEditing }\n\t\t\t\t\tonBlur={ finishEditing }\n\t\t\t\t\tonSubmitEditing={ onSubmit }\n\t\t\t\t\tkeyboardType={ this.typeToKeyboardType( type, step ) }\n\t\t\t\t\t{ ...valueProps }\n\t\t\t\t/>\n\t\t\t) : (\n\t\t\t\t<Text\n\t\t\t\t\tstyle={ { ...cellValueStyle, ...valueStyle } }\n\t\t\t\t\tnumberOfLines={ 1 }\n\t\t\t\t\tellipsizeMode={ 'middle' }\n\t\t\t\t>\n\t\t\t\t\t{ value }\n\t\t\t\t</Text>\n\t\t\t);\n\t\t};\n\n\t\tconst getAccessibilityLabel = () => {\n\t\t\tif ( accessible === false ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif ( accessibilityLabel || ! showValue ) {\n\t\t\t\treturn accessibilityLabel || label;\n\t\t\t}\n\n\t\t\tif ( isEmpty( value ) ) {\n\t\t\t\treturn isEmpty( help )\n\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t/* translators: accessibility text. Empty state of a inline textinput cell. %s: The cell's title */\n\t\t\t\t\t\t\t_x( '%s. Empty', 'inline textinput cell' ),\n\t\t\t\t\t\t\tlabel\n\t\t\t\t\t )\n\t\t\t\t\t: // Separating by ',' is necessary to make a pause on urls (non-capitalized text)\n\t\t\t\t\t sprintf(\n\t\t\t\t\t\t\t/* translators: accessibility text. Empty state of a inline textinput cell. %1: Cell title, %2: cell help. */\n\t\t\t\t\t\t\t_x( '%1$s, %2$s. Empty', 'inline textinput cell' ),\n\t\t\t\t\t\t\tlabel,\n\t\t\t\t\t\t\thelp\n\t\t\t\t\t );\n\t\t\t}\n\t\t\treturn isEmpty( help )\n\t\t\t\t? sprintf(\n\t\t\t\t\t\t/* translators: accessibility text. Inline textinput title and value.%1: Cell title, %2: cell value. */\n\t\t\t\t\t\t_x( '%1$s, %2$s', 'inline textinput cell' ),\n\t\t\t\t\t\tlabel,\n\t\t\t\t\t\tvalue\n\t\t\t\t ) // Separating by ',' is necessary to make a pause on urls (non-capitalized text)\n\t\t\t\t: sprintf(\n\t\t\t\t\t\t/* translators: accessibility text. Inline textinput title, value and help text.%1: Cell title, %2: cell value, , %3: cell help. */\n\t\t\t\t\t\t_x( '%1$s, %2$s, %3$s', 'inline textinput cell' ),\n\t\t\t\t\t\tlabel,\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\thelp\n\t\t\t\t );\n\t\t};\n\n\t\tconst iconStyleBase = getStylesFromColorScheme(\n\t\t\tstyles.icon,\n\t\t\tstyles.iconDark\n\t\t);\n\t\tconst resetButtonStyle = getStylesFromColorScheme(\n\t\t\tstyles.resetButton,\n\t\t\tstyles.resetButtonDark\n\t\t);\n\t\tconst cellHelpStyle = [\n\t\t\tstyles.cellHelpLabel,\n\t\t\tisIOS && styles.cellHelpLabelIOS,\n\t\t];\n\t\tconst containerPointerEvents =\n\t\t\tthis.state.isScreenReaderEnabled && accessible ? 'none' : 'auto';\n\t\tconst { title, handler } = customActionButton || {};\n\n\t\tconst opacity =\n\t\t\tactiveOpacity !== undefined\n\t\t\t\t? activeOpacity\n\t\t\t\t: get( platformStyles, 'activeOpacity.opacity' );\n\n\t\treturn (\n\t\t\t<TouchableRipple\n\t\t\t\taccessible={\n\t\t\t\t\taccessible !== undefined\n\t\t\t\t\t\t? accessible\n\t\t\t\t\t\t: ! this.state.isEditingValue\n\t\t\t\t}\n\t\t\t\taccessibilityLabel={ getAccessibilityLabel() }\n\t\t\t\taccessibilityRole={ accessibilityRole || 'button' }\n\t\t\t\taccessibilityHint={\n\t\t\t\t\tisValueEditable\n\t\t\t\t\t\t? /* translators: accessibility text */\n\t\t\t\t\t\t __( 'Double tap to edit this value' )\n\t\t\t\t\t\t: accessibilityHint\n\t\t\t\t}\n\t\t\t\tdisabled={ disabled || ! isInteractive }\n\t\t\t\tactiveOpacity={ opacity }\n\t\t\t\tonPress={ onCellPress }\n\t\t\t\tonLongPress={ onLongPress }\n\t\t\t\tstyle={ [ styles.clipToBounds, style ] }\n\t\t\t\tborderless={ borderless }\n\t\t\t>\n\t\t\t\t{ drawTopSeparator && <View style={ separatorStyle() } /> }\n\t\t\t\t<View\n\t\t\t\t\tstyle={ cellContainerStyles }\n\t\t\t\t\tpointerEvents={ containerPointerEvents }\n\t\t\t\t>\n\t\t\t\t\t<View style={ rowContainerStyles }>\n\t\t\t\t\t\t<View style={ styles.cellRowContainer }>\n\t\t\t\t\t\t\t{ icon && (\n\t\t\t\t\t\t\t\t<View\n\t\t\t\t\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t\t\t\t\tstyles.cellRowContainer,\n\t\t\t\t\t\t\t\t\t\tstyles.cellRowIcon,\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\t\t<Icon\n\t\t\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\t\t\tsize={ 24 }\n\t\t\t\t\t\t\t\t\t\tfill={\n\t\t\t\t\t\t\t\t\t\t\ticonStyle.color ||\n\t\t\t\t\t\t\t\t\t\t\ticonStyleBase.color\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tstyle={ iconStyle }\n\t\t\t\t\t\t\t\t\t\tisPressed={ false }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<View\n\t\t\t\t\t\t\t\t\t\tstyle={\n\t\t\t\t\t\t\t\t\t\t\tplatformStyles.labelIconSeparator\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</View>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ subLabel && label && (\n\t\t\t\t\t\t\t\t<View>\n\t\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t\t\t\t\t\tdefaultLabelStyle,\n\t\t\t\t\t\t\t\t\t\t\tlabelStyle,\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\t\t{ label }\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t<Text style={ defaultSubLabelStyleText }>\n\t\t\t\t\t\t\t\t\t\t{ subLabel }\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ ! subLabel && label && (\n\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\tstyle={ [ defaultLabelStyle, labelStyle ] }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ label }\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</View>\n\t\t\t\t\t\t{ customActionButton && (\n\t\t\t\t\t\t\t<TouchableOpacity\n\t\t\t\t\t\t\t\tonPress={ handler }\n\t\t\t\t\t\t\t\taccessibilityRole={ 'button' }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Text style={ resetButtonStyle }>\n\t\t\t\t\t\t\t\t\t{ title }\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t</TouchableOpacity>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</View>\n\t\t\t\t\t{ isSelected && (\n\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\ticon={ check }\n\t\t\t\t\t\t\tfill={ platformStyles.isSelected.color }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ showValue && getValueComponent() }\n\t\t\t\t\t{ children }\n\t\t\t\t</View>\n\t\t\t\t{ help && (\n\t\t\t\t\t<Text style={ [ cellHelpStyle, styles.placeholderColor ] }>\n\t\t\t\t\t\t{ help }\n\t\t\t\t\t</Text>\n\t\t\t\t) }\n\t\t\t\t{ ! drawTopSeparator && <View style={ separatorStyle() } /> }\n\t\t\t</TouchableRipple>\n\t\t);\n\t}\n}\n\nexport default withPreferredColorScheme( BottomSheetCell );\n"]}
@@ -5,7 +5,6 @@ import { createElement } from "@wordpress/element";
5
5
  * External dependencies
6
6
  */
7
7
  import { Switch } from 'react-native';
8
- import { isEmpty } from 'lodash';
9
8
  /**
10
9
  * WordPress dependencies
11
10
  */
@@ -28,7 +27,7 @@ export default function BottomSheetSwitchCell(props) {
28
27
  };
29
28
 
30
29
  const getAccessibilityLabel = () => {
31
- if (isEmpty(cellProps.help)) {
30
+ if (!cellProps.help) {
32
31
  return value ? sprintf(
33
32
  /* translators: accessibility text. Switch setting ON state. %s: Switch title. */
34
33
  _x('%s. On', 'switch control'), cellProps.label) : sprintf(
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/mobile/bottom-sheet/switch-cell.native.js"],"names":["Switch","isEmpty","__","_x","sprintf","Cell","BottomSheetSwitchCell","props","value","onValueChange","cellProps","onPress","getAccessibilityLabel","help","label"],"mappings":";;;AAAA;AACA;AACA;AACA,SAASA,MAAT,QAAuB,cAAvB;AACA,SAASC,OAAT,QAAwB,QAAxB;AACA;AACA;AACA;;AACA,SAASC,EAAT,EAAaC,EAAb,EAAiBC,OAAjB,QAAgC,iBAAhC;AACA;AACA;AACA;;AACA,OAAOC,IAAP,MAAiB,QAAjB;AAEA,eAAe,SAASC,qBAAT,CAAgCC,KAAhC,EAAwC;AACtD,QAAM;AAAEC,IAAAA,KAAF;AAASC,IAAAA,aAAT;AAAwB,OAAGC;AAA3B,MAAyCH,KAA/C;;AAEA,QAAMI,OAAO,GAAG,MAAM;AACrBF,IAAAA,aAAa,CAAE,CAAED,KAAJ,CAAb;AACA,GAFD;;AAIA,QAAMI,qBAAqB,GAAG,MAAM;AACnC,QAAKX,OAAO,CAAES,SAAS,CAACG,IAAZ,CAAZ,EAAiC;AAChC,aAAOL,KAAK,GACTJ,OAAO;AACP;AACAD,MAAAA,EAAE,CAAE,QAAF,EAAY,gBAAZ,CAFK,EAGPO,SAAS,CAACI,KAHH,CADE,GAMTV,OAAO;AACP;AACAD,MAAAA,EAAE,CAAE,SAAF,EAAa,gBAAb,CAFK,EAGPO,SAAS,CAACI,KAHH,CANV;AAWA;;AACD,WAAON,KAAK,GACTJ,OAAO;AACP;AACAD,IAAAA,EAAE,CAAE,gBAAF,EAAoB,gBAApB,CAFK,EAGPO,SAAS,CAACI,KAHH,EAIPJ,SAAS,CAACG,IAJH,CADE,GAOTT,OAAO;AACP;AACAD,IAAAA,EAAE,CAAE,iBAAF,EAAqB,gBAArB,CAFK,EAGPO,SAAS,CAACI,KAHH,EAIPJ,SAAS,CAACG,IAJH,CAPV;AAaA,GA3BD;;AA6BA,SACC,cAAC,IAAD,eACMH,SADN;AAEC,IAAA,kBAAkB,EAAGE,qBAAqB,EAF3C;AAGC,IAAA,iBAAiB,EAAG,MAHrB;AAIC,IAAA,iBAAiB;AAChB;AACAV,IAAAA,EAAE,CAAE,8BAAF,CANJ;AAQC,IAAA,OAAO,EAAGS,OARX;AASC,IAAA,QAAQ,EAAG,KATZ;AAUC,IAAA,KAAK,EAAG;AAVT,MAYC,cAAC,MAAD;AAAQ,IAAA,KAAK,EAAGH,KAAhB;AAAwB,IAAA,aAAa,EAAGC;AAAxC,IAZD,CADD;AAgBA","sourcesContent":["/**\n * External dependencies\n */\nimport { Switch } from 'react-native';\nimport { isEmpty } from 'lodash';\n/**\n * WordPress dependencies\n */\nimport { __, _x, sprintf } from '@wordpress/i18n';\n/**\n * Internal dependencies\n */\nimport Cell from './cell';\n\nexport default function BottomSheetSwitchCell( props ) {\n\tconst { value, onValueChange, ...cellProps } = props;\n\n\tconst onPress = () => {\n\t\tonValueChange( ! value );\n\t};\n\n\tconst getAccessibilityLabel = () => {\n\t\tif ( isEmpty( cellProps.help ) ) {\n\t\t\treturn value\n\t\t\t\t? sprintf(\n\t\t\t\t\t\t/* translators: accessibility text. Switch setting ON state. %s: Switch title. */\n\t\t\t\t\t\t_x( '%s. On', 'switch control' ),\n\t\t\t\t\t\tcellProps.label\n\t\t\t\t )\n\t\t\t\t: sprintf(\n\t\t\t\t\t\t/* translators: accessibility text. Switch setting OFF state. %s: Switch title. */\n\t\t\t\t\t\t_x( '%s. Off', 'switch control' ),\n\t\t\t\t\t\tcellProps.label\n\t\t\t\t );\n\t\t}\n\t\treturn value\n\t\t\t? sprintf(\n\t\t\t\t\t/* translators: accessibility text. Switch setting ON state. %1: Switch title, %2: switch help. */\n\t\t\t\t\t_x( '%1$s, %2$s. On', 'switch control' ),\n\t\t\t\t\tcellProps.label,\n\t\t\t\t\tcellProps.help\n\t\t\t )\n\t\t\t: sprintf(\n\t\t\t\t\t/* translators: accessibility text. Switch setting OFF state. %1: Switch title, %2: switch help. */\n\t\t\t\t\t_x( '%1$s, %2$s. Off', 'switch control' ),\n\t\t\t\t\tcellProps.label,\n\t\t\t\t\tcellProps.help\n\t\t\t );\n\t};\n\n\treturn (\n\t\t<Cell\n\t\t\t{ ...cellProps }\n\t\t\taccessibilityLabel={ getAccessibilityLabel() }\n\t\t\taccessibilityRole={ 'none' }\n\t\t\taccessibilityHint={\n\t\t\t\t/* translators: accessibility text (hint for switches) */\n\t\t\t\t__( 'Double tap to toggle setting' )\n\t\t\t}\n\t\t\tonPress={ onPress }\n\t\t\teditable={ false }\n\t\t\tvalue={ '' }\n\t\t>\n\t\t\t<Switch value={ value } onValueChange={ onValueChange } />\n\t\t</Cell>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/mobile/bottom-sheet/switch-cell.native.js"],"names":["Switch","__","_x","sprintf","Cell","BottomSheetSwitchCell","props","value","onValueChange","cellProps","onPress","getAccessibilityLabel","help","label"],"mappings":";;;AAAA;AACA;AACA;AACA,SAASA,MAAT,QAAuB,cAAvB;AAEA;AACA;AACA;;AACA,SAASC,EAAT,EAAaC,EAAb,EAAiBC,OAAjB,QAAgC,iBAAhC;AACA;AACA;AACA;;AACA,OAAOC,IAAP,MAAiB,QAAjB;AAEA,eAAe,SAASC,qBAAT,CAAgCC,KAAhC,EAAwC;AACtD,QAAM;AAAEC,IAAAA,KAAF;AAASC,IAAAA,aAAT;AAAwB,OAAGC;AAA3B,MAAyCH,KAA/C;;AAEA,QAAMI,OAAO,GAAG,MAAM;AACrBF,IAAAA,aAAa,CAAE,CAAED,KAAJ,CAAb;AACA,GAFD;;AAIA,QAAMI,qBAAqB,GAAG,MAAM;AACnC,QAAK,CAAEF,SAAS,CAACG,IAAjB,EAAwB;AACvB,aAAOL,KAAK,GACTJ,OAAO;AACP;AACAD,MAAAA,EAAE,CAAE,QAAF,EAAY,gBAAZ,CAFK,EAGPO,SAAS,CAACI,KAHH,CADE,GAMTV,OAAO;AACP;AACAD,MAAAA,EAAE,CAAE,SAAF,EAAa,gBAAb,CAFK,EAGPO,SAAS,CAACI,KAHH,CANV;AAWA;;AACD,WAAON,KAAK,GACTJ,OAAO;AACP;AACAD,IAAAA,EAAE,CAAE,gBAAF,EAAoB,gBAApB,CAFK,EAGPO,SAAS,CAACI,KAHH,EAIPJ,SAAS,CAACG,IAJH,CADE,GAOTT,OAAO;AACP;AACAD,IAAAA,EAAE,CAAE,iBAAF,EAAqB,gBAArB,CAFK,EAGPO,SAAS,CAACI,KAHH,EAIPJ,SAAS,CAACG,IAJH,CAPV;AAaA,GA3BD;;AA6BA,SACC,cAAC,IAAD,eACMH,SADN;AAEC,IAAA,kBAAkB,EAAGE,qBAAqB,EAF3C;AAGC,IAAA,iBAAiB,EAAG,MAHrB;AAIC,IAAA,iBAAiB;AAChB;AACAV,IAAAA,EAAE,CAAE,8BAAF,CANJ;AAQC,IAAA,OAAO,EAAGS,OARX;AASC,IAAA,QAAQ,EAAG,KATZ;AAUC,IAAA,KAAK,EAAG;AAVT,MAYC,cAAC,MAAD;AAAQ,IAAA,KAAK,EAAGH,KAAhB;AAAwB,IAAA,aAAa,EAAGC;AAAxC,IAZD,CADD;AAgBA","sourcesContent":["/**\n * External dependencies\n */\nimport { Switch } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { __, _x, sprintf } from '@wordpress/i18n';\n/**\n * Internal dependencies\n */\nimport Cell from './cell';\n\nexport default function BottomSheetSwitchCell( props ) {\n\tconst { value, onValueChange, ...cellProps } = props;\n\n\tconst onPress = () => {\n\t\tonValueChange( ! value );\n\t};\n\n\tconst getAccessibilityLabel = () => {\n\t\tif ( ! cellProps.help ) {\n\t\t\treturn value\n\t\t\t\t? sprintf(\n\t\t\t\t\t\t/* translators: accessibility text. Switch setting ON state. %s: Switch title. */\n\t\t\t\t\t\t_x( '%s. On', 'switch control' ),\n\t\t\t\t\t\tcellProps.label\n\t\t\t\t )\n\t\t\t\t: sprintf(\n\t\t\t\t\t\t/* translators: accessibility text. Switch setting OFF state. %s: Switch title. */\n\t\t\t\t\t\t_x( '%s. Off', 'switch control' ),\n\t\t\t\t\t\tcellProps.label\n\t\t\t\t );\n\t\t}\n\t\treturn value\n\t\t\t? sprintf(\n\t\t\t\t\t/* translators: accessibility text. Switch setting ON state. %1: Switch title, %2: switch help. */\n\t\t\t\t\t_x( '%1$s, %2$s. On', 'switch control' ),\n\t\t\t\t\tcellProps.label,\n\t\t\t\t\tcellProps.help\n\t\t\t )\n\t\t\t: sprintf(\n\t\t\t\t\t/* translators: accessibility text. Switch setting OFF state. %1: Switch title, %2: switch help. */\n\t\t\t\t\t_x( '%1$s, %2$s. Off', 'switch control' ),\n\t\t\t\t\tcellProps.label,\n\t\t\t\t\tcellProps.help\n\t\t\t );\n\t};\n\n\treturn (\n\t\t<Cell\n\t\t\t{ ...cellProps }\n\t\t\taccessibilityLabel={ getAccessibilityLabel() }\n\t\t\taccessibilityRole={ 'none' }\n\t\t\taccessibilityHint={\n\t\t\t\t/* translators: accessibility text (hint for switches) */\n\t\t\t\t__( 'Double tap to toggle setting' )\n\t\t\t}\n\t\t\tonPress={ onPress }\n\t\t\teditable={ false }\n\t\t\tvalue={ '' }\n\t\t>\n\t\t\t<Switch value={ value } onValueChange={ onValueChange } />\n\t\t</Cell>\n\t);\n}\n"]}
@@ -1,14 +1,9 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import { createElement } from "@wordpress/element";
3
3
 
4
- /**
5
- * External dependencies
6
- */
7
- import { pick } from 'lodash';
8
4
  /**
9
5
  * WordPress dependencies
10
6
  */
11
-
12
7
  import { createContext, useContext } from '@wordpress/element';
13
8
  /**
14
9
  * Internal dependencies
@@ -23,10 +18,16 @@ export const getMergedGlobalStyles = (baseGlobalStyles, globalStyle, wrapperProp
23
18
  const baseGlobalColors = {
24
19
  baseColors: baseGlobalStyles || {}
25
20
  };
26
- const blockStyleAttributes = pick(blockAttributes, BLOCK_STYLE_ATTRIBUTES); // This prevents certain wrapper styles from being applied to blocks that
21
+ const blockStyleAttributes = Object.fromEntries(Object.entries(blockAttributes !== null && blockAttributes !== void 0 ? blockAttributes : {}).filter(_ref => {
22
+ let [key] = _ref;
23
+ return BLOCK_STYLE_ATTRIBUTES.includes(key);
24
+ })); // This prevents certain wrapper styles from being applied to blocks that
27
25
  // don't support them yet.
28
26
 
29
- const wrapperPropsStyleFiltered = pick(wrapperPropsStyle, BLOCK_STYLE_ATTRIBUTES);
27
+ const wrapperPropsStyleFiltered = Object.fromEntries(Object.entries(wrapperPropsStyle !== null && wrapperPropsStyle !== void 0 ? wrapperPropsStyle : {}).filter(_ref2 => {
28
+ let [key] = _ref2;
29
+ return BLOCK_STYLE_ATTRIBUTES.includes(key);
30
+ }));
30
31
  const mergedStyle = { ...baseGlobalColors,
31
32
  ...globalStyle,
32
33
  ...wrapperPropsStyleFiltered
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/mobile/global-styles-context/index.native.js"],"names":["pick","createContext","useContext","BLOCK_STYLE_ATTRIBUTES","getBlockPaddings","getBlockColors","getBlockTypography","GlobalStylesContext","style","getMergedGlobalStyles","baseGlobalStyles","globalStyle","wrapperPropsStyle","blockAttributes","defaultColors","blockName","fontSizes","baseGlobalColors","baseColors","blockStyleAttributes","wrapperPropsStyleFiltered","mergedStyle","blockColors","blockPaddings","blockTypography","useGlobalStyles","globalStyles","withGlobalStyles","WrappedComponent","props"],"mappings":";;;AAAA;AACA;AACA;AACA,SAASA,IAAT,QAAqB,QAArB;AAEA;AACA;AACA;;AACA,SAASC,aAAT,EAAwBC,UAAxB,QAA0C,oBAA1C;AAEA;AACA;AACA;;AACA,SACCC,sBADD,EAECC,gBAFD,EAGCC,cAHD,EAICC,kBAJD,QAKO,SALP;AAOA,MAAMC,mBAAmB,GAAGN,aAAa,CAAE;AAAEO,EAAAA,KAAK,EAAE;AAAT,CAAF,CAAzC;AAEAD,mBAAmB,CAACJ,sBAApB,GAA6CA,sBAA7C;AAEA,OAAO,MAAMM,qBAAqB,GAAG,CACpCC,gBADoC,EAEpCC,WAFoC,EAGpCC,iBAHoC,EAIpCC,eAJoC,EAKpCC,aALoC,EAMpCC,SANoC,EAOpCC,SAPoC,KAQhC;AACJ,QAAMC,gBAAgB,GAAG;AACxBC,IAAAA,UAAU,EAAER,gBAAgB,IAAI;AADR,GAAzB;AAGA,QAAMS,oBAAoB,GAAGnB,IAAI,CAChCa,eADgC,EAEhCV,sBAFgC,CAAjC,CAJI,CAQJ;AACA;;AACA,QAAMiB,yBAAyB,GAAGpB,IAAI,CACrCY,iBADqC,EAErCT,sBAFqC,CAAtC;AAKA,QAAMkB,WAAW,GAAG,EACnB,GAAGJ,gBADgB;AAEnB,OAAGN,WAFgB;AAGnB,OAAGS;AAHgB,GAApB;AAKA,QAAME,WAAW,GAAGjB,cAAc,CACjCc,oBADiC,EAEjCL,aAFiC,EAGjCC,SAHiC,EAIjCL,gBAJiC,CAAlC;AAMA,QAAMa,aAAa,GAAGnB,gBAAgB,CACrCiB,WADqC,EAErCT,iBAFqC,EAGrCO,oBAHqC,EAIrCG,WAJqC,CAAtC;AAMA,QAAME,eAAe,GAAGlB,kBAAkB,CACzCa,oBADyC,EAEzCH,SAFyC,EAGzCD,SAHyC,EAIzCL,gBAJyC,CAA1C;AAOA,SAAO,EACN,GAAGW,WADG;AAEN,OAAGE,aAFG;AAGN,OAAGD,WAHG;AAIN,OAAGE;AAJG,GAAP;AAMA,CArDM;AAuDP,OAAO,MAAMC,eAAe,GAAG,MAAM;AACpC,QAAMC,YAAY,GAAGxB,UAAU,CAAEK,mBAAF,CAA/B;AAEA,SAAOmB,YAAP;AACA,CAJM;AAMP,OAAO,MAAMC,gBAAgB,GAAKC,gBAAF,IAA0BC,KAAF,IAEtD,cAAC,mBAAD,CAAqB,QAArB,QACKH,YAAF,IACD,cAAC,gBAAD,eAAuBG,KAAvB;AAA+B,EAAA,YAAY,EAAGH;AAA9C,GAFF,CAFK;AASP,eAAenB,mBAAf","sourcesContent":["/**\n * External dependencies\n */\nimport { pick } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { createContext, useContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport {\n\tBLOCK_STYLE_ATTRIBUTES,\n\tgetBlockPaddings,\n\tgetBlockColors,\n\tgetBlockTypography,\n} from './utils';\n\nconst GlobalStylesContext = createContext( { style: {} } );\n\nGlobalStylesContext.BLOCK_STYLE_ATTRIBUTES = BLOCK_STYLE_ATTRIBUTES;\n\nexport const getMergedGlobalStyles = (\n\tbaseGlobalStyles,\n\tglobalStyle,\n\twrapperPropsStyle,\n\tblockAttributes,\n\tdefaultColors,\n\tblockName,\n\tfontSizes\n) => {\n\tconst baseGlobalColors = {\n\t\tbaseColors: baseGlobalStyles || {},\n\t};\n\tconst blockStyleAttributes = pick(\n\t\tblockAttributes,\n\t\tBLOCK_STYLE_ATTRIBUTES\n\t);\n\t// This prevents certain wrapper styles from being applied to blocks that\n\t// don't support them yet.\n\tconst wrapperPropsStyleFiltered = pick(\n\t\twrapperPropsStyle,\n\t\tBLOCK_STYLE_ATTRIBUTES\n\t);\n\n\tconst mergedStyle = {\n\t\t...baseGlobalColors,\n\t\t...globalStyle,\n\t\t...wrapperPropsStyleFiltered,\n\t};\n\tconst blockColors = getBlockColors(\n\t\tblockStyleAttributes,\n\t\tdefaultColors,\n\t\tblockName,\n\t\tbaseGlobalStyles\n\t);\n\tconst blockPaddings = getBlockPaddings(\n\t\tmergedStyle,\n\t\twrapperPropsStyle,\n\t\tblockStyleAttributes,\n\t\tblockColors\n\t);\n\tconst blockTypography = getBlockTypography(\n\t\tblockStyleAttributes,\n\t\tfontSizes,\n\t\tblockName,\n\t\tbaseGlobalStyles\n\t);\n\n\treturn {\n\t\t...mergedStyle,\n\t\t...blockPaddings,\n\t\t...blockColors,\n\t\t...blockTypography,\n\t};\n};\n\nexport const useGlobalStyles = () => {\n\tconst globalStyles = useContext( GlobalStylesContext );\n\n\treturn globalStyles;\n};\n\nexport const withGlobalStyles = ( WrappedComponent ) => ( props ) =>\n\t(\n\t\t<GlobalStylesContext.Consumer>\n\t\t\t{ ( globalStyles ) => (\n\t\t\t\t<WrappedComponent { ...props } globalStyles={ globalStyles } />\n\t\t\t) }\n\t\t</GlobalStylesContext.Consumer>\n\t);\n\nexport default GlobalStylesContext;\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/mobile/global-styles-context/index.native.js"],"names":["createContext","useContext","BLOCK_STYLE_ATTRIBUTES","getBlockPaddings","getBlockColors","getBlockTypography","GlobalStylesContext","style","getMergedGlobalStyles","baseGlobalStyles","globalStyle","wrapperPropsStyle","blockAttributes","defaultColors","blockName","fontSizes","baseGlobalColors","baseColors","blockStyleAttributes","Object","fromEntries","entries","filter","key","includes","wrapperPropsStyleFiltered","mergedStyle","blockColors","blockPaddings","blockTypography","useGlobalStyles","globalStyles","withGlobalStyles","WrappedComponent","props"],"mappings":";;;AAAA;AACA;AACA;AACA,SAASA,aAAT,EAAwBC,UAAxB,QAA0C,oBAA1C;AAEA;AACA;AACA;;AACA,SACCC,sBADD,EAECC,gBAFD,EAGCC,cAHD,EAICC,kBAJD,QAKO,SALP;AAOA,MAAMC,mBAAmB,GAAGN,aAAa,CAAE;AAAEO,EAAAA,KAAK,EAAE;AAAT,CAAF,CAAzC;AAEAD,mBAAmB,CAACJ,sBAApB,GAA6CA,sBAA7C;AAEA,OAAO,MAAMM,qBAAqB,GAAG,CACpCC,gBADoC,EAEpCC,WAFoC,EAGpCC,iBAHoC,EAIpCC,eAJoC,EAKpCC,aALoC,EAMpCC,SANoC,EAOpCC,SAPoC,KAQhC;AACJ,QAAMC,gBAAgB,GAAG;AACxBC,IAAAA,UAAU,EAAER,gBAAgB,IAAI;AADR,GAAzB;AAGA,QAAMS,oBAAoB,GAAGC,MAAM,CAACC,WAAP,CAC5BD,MAAM,CAACE,OAAP,CAAgBT,eAAhB,aAAgBA,eAAhB,cAAgBA,eAAhB,GAAmC,EAAnC,EAAwCU,MAAxC,CAAgD;AAAA,QAAE,CAAEC,GAAF,CAAF;AAAA,WAC/CrB,sBAAsB,CAACsB,QAAvB,CAAiCD,GAAjC,CAD+C;AAAA,GAAhD,CAD4B,CAA7B,CAJI,CAUJ;AACA;;AACA,QAAME,yBAAyB,GAAGN,MAAM,CAACC,WAAP,CACjCD,MAAM,CAACE,OAAP,CAAgBV,iBAAhB,aAAgBA,iBAAhB,cAAgBA,iBAAhB,GAAqC,EAArC,EAA0CW,MAA1C,CAAkD;AAAA,QAAE,CAAEC,GAAF,CAAF;AAAA,WACjDrB,sBAAsB,CAACsB,QAAvB,CAAiCD,GAAjC,CADiD;AAAA,GAAlD,CADiC,CAAlC;AAMA,QAAMG,WAAW,GAAG,EACnB,GAAGV,gBADgB;AAEnB,OAAGN,WAFgB;AAGnB,OAAGe;AAHgB,GAApB;AAKA,QAAME,WAAW,GAAGvB,cAAc,CACjCc,oBADiC,EAEjCL,aAFiC,EAGjCC,SAHiC,EAIjCL,gBAJiC,CAAlC;AAMA,QAAMmB,aAAa,GAAGzB,gBAAgB,CACrCuB,WADqC,EAErCf,iBAFqC,EAGrCO,oBAHqC,EAIrCS,WAJqC,CAAtC;AAMA,QAAME,eAAe,GAAGxB,kBAAkB,CACzCa,oBADyC,EAEzCH,SAFyC,EAGzCD,SAHyC,EAIzCL,gBAJyC,CAA1C;AAOA,SAAO,EACN,GAAGiB,WADG;AAEN,OAAGE,aAFG;AAGN,OAAGD,WAHG;AAIN,OAAGE;AAJG,GAAP;AAMA,CAxDM;AA0DP,OAAO,MAAMC,eAAe,GAAG,MAAM;AACpC,QAAMC,YAAY,GAAG9B,UAAU,CAAEK,mBAAF,CAA/B;AAEA,SAAOyB,YAAP;AACA,CAJM;AAMP,OAAO,MAAMC,gBAAgB,GAAKC,gBAAF,IAA0BC,KAAF,IAEtD,cAAC,mBAAD,CAAqB,QAArB,QACKH,YAAF,IACD,cAAC,gBAAD,eAAuBG,KAAvB;AAA+B,EAAA,YAAY,EAAGH;AAA9C,GAFF,CAFK;AASP,eAAezB,mBAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createContext, useContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport {\n\tBLOCK_STYLE_ATTRIBUTES,\n\tgetBlockPaddings,\n\tgetBlockColors,\n\tgetBlockTypography,\n} from './utils';\n\nconst GlobalStylesContext = createContext( { style: {} } );\n\nGlobalStylesContext.BLOCK_STYLE_ATTRIBUTES = BLOCK_STYLE_ATTRIBUTES;\n\nexport const getMergedGlobalStyles = (\n\tbaseGlobalStyles,\n\tglobalStyle,\n\twrapperPropsStyle,\n\tblockAttributes,\n\tdefaultColors,\n\tblockName,\n\tfontSizes\n) => {\n\tconst baseGlobalColors = {\n\t\tbaseColors: baseGlobalStyles || {},\n\t};\n\tconst blockStyleAttributes = Object.fromEntries(\n\t\tObject.entries( blockAttributes ?? {} ).filter( ( [ key ] ) =>\n\t\t\tBLOCK_STYLE_ATTRIBUTES.includes( key )\n\t\t)\n\t);\n\n\t// This prevents certain wrapper styles from being applied to blocks that\n\t// don't support them yet.\n\tconst wrapperPropsStyleFiltered = Object.fromEntries(\n\t\tObject.entries( wrapperPropsStyle ?? {} ).filter( ( [ key ] ) =>\n\t\t\tBLOCK_STYLE_ATTRIBUTES.includes( key )\n\t\t)\n\t);\n\n\tconst mergedStyle = {\n\t\t...baseGlobalColors,\n\t\t...globalStyle,\n\t\t...wrapperPropsStyleFiltered,\n\t};\n\tconst blockColors = getBlockColors(\n\t\tblockStyleAttributes,\n\t\tdefaultColors,\n\t\tblockName,\n\t\tbaseGlobalStyles\n\t);\n\tconst blockPaddings = getBlockPaddings(\n\t\tmergedStyle,\n\t\twrapperPropsStyle,\n\t\tblockStyleAttributes,\n\t\tblockColors\n\t);\n\tconst blockTypography = getBlockTypography(\n\t\tblockStyleAttributes,\n\t\tfontSizes,\n\t\tblockName,\n\t\tbaseGlobalStyles\n\t);\n\n\treturn {\n\t\t...mergedStyle,\n\t\t...blockPaddings,\n\t\t...blockColors,\n\t\t...blockTypography,\n\t};\n};\n\nexport const useGlobalStyles = () => {\n\tconst globalStyles = useContext( GlobalStylesContext );\n\n\treturn globalStyles;\n};\n\nexport const withGlobalStyles = ( WrappedComponent ) => ( props ) =>\n\t(\n\t\t<GlobalStylesContext.Consumer>\n\t\t\t{ ( globalStyles ) => (\n\t\t\t\t<WrappedComponent { ...props } globalStyles={ globalStyles } />\n\t\t\t) }\n\t\t</GlobalStylesContext.Consumer>\n\t);\n\nexport default GlobalStylesContext;\n"]}
@@ -5,14 +5,14 @@ import { createElement } from "@wordpress/element";
5
5
  */
6
6
  import { KeyboardAwareScrollView } from 'react-native-keyboard-aware-scroll-view';
7
7
  import { FlatList } from 'react-native';
8
- import { isEqual } from 'lodash';
8
+ import fastDeepEqual from 'fast-deep-equal/es6';
9
9
  import Animated, { useAnimatedScrollHandler, useSharedValue } from 'react-native-reanimated';
10
10
  /**
11
11
  * WordPress dependencies
12
12
  */
13
13
 
14
14
  import { memo, useCallback, useRef } from '@wordpress/element';
15
- const List = memo(FlatList, isEqual);
15
+ const List = memo(FlatList, fastDeepEqual);
16
16
  const AnimatedKeyboardAwareScrollView = Animated.createAnimatedComponent(KeyboardAwareScrollView);
17
17
  export const KeyboardAwareFlatList = _ref => {
18
18
  let {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/mobile/keyboard-aware-flat-list/index.ios.js"],"names":["KeyboardAwareScrollView","FlatList","isEqual","Animated","useAnimatedScrollHandler","useSharedValue","memo","useCallback","useRef","List","AnimatedKeyboardAwareScrollView","createAnimatedComponent","KeyboardAwareFlatList","extraScrollHeight","shouldPreventAutomaticScroll","innerRef","autoScroll","scrollViewStyle","inputAccessoryViewHeight","onScroll","listProps","scrollViewRef","keyboardWillShowIndicator","latestContentOffsetY","scrollHandler","event","contentOffset","value","y","getRef","ref","current","onKeyboardWillHide","onKeyboardDidHide","setTimeout","scrollToPosition","onKeyboardWillShow","flex","undefined","scrollEnabled","handleCaretVerticalPositionChange","scrollView","targetId","caretY","previousCaretY","refreshScrollForField"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { KeyboardAwareScrollView } from 'react-native-keyboard-aware-scroll-view';\nimport { FlatList } from 'react-native';\nimport { isEqual } from 'lodash';\nimport Animated, {\n\tuseAnimatedScrollHandler,\n\tuseSharedValue,\n} from 'react-native-reanimated';\n\n/**\n * WordPress dependencies\n */\nimport { memo, useCallback, useRef } from '@wordpress/element';\n\nconst List = memo( FlatList, isEqual );\nconst AnimatedKeyboardAwareScrollView = Animated.createAnimatedComponent(\n\tKeyboardAwareScrollView\n);\n\nexport const KeyboardAwareFlatList = ( {\n\textraScrollHeight,\n\tshouldPreventAutomaticScroll,\n\tinnerRef,\n\tautoScroll,\n\tscrollViewStyle,\n\tinputAccessoryViewHeight,\n\tonScroll,\n\t...listProps\n} ) => {\n\tconst scrollViewRef = useRef();\n\tconst keyboardWillShowIndicator = useRef();\n\n\tconst latestContentOffsetY = useSharedValue( -1 );\n\n\tconst scrollHandler = useAnimatedScrollHandler( {\n\t\tonScroll: ( event ) => {\n\t\t\tconst { contentOffset } = event;\n\t\t\tlatestContentOffsetY.value = contentOffset.y;\n\t\t\tonScroll( event );\n\t\t},\n\t} );\n\n\tconst getRef = useCallback(\n\t\t( ref ) => {\n\t\t\tscrollViewRef.current = ref;\n\t\t\tinnerRef( ref );\n\t\t},\n\t\t[ innerRef ]\n\t);\n\tconst onKeyboardWillHide = useCallback( () => {\n\t\tkeyboardWillShowIndicator.current = false;\n\t}, [] );\n\tconst onKeyboardDidHide = useCallback( () => {\n\t\tsetTimeout( () => {\n\t\t\tif (\n\t\t\t\t! keyboardWillShowIndicator.current &&\n\t\t\t\tlatestContentOffsetY.value !== -1 &&\n\t\t\t\t! shouldPreventAutomaticScroll()\n\t\t\t) {\n\t\t\t\t// Reset the content position if keyboard is still closed.\n\t\t\t\tscrollViewRef.current?.scrollToPosition(\n\t\t\t\t\t0,\n\t\t\t\t\tlatestContentOffsetY.value,\n\t\t\t\t\ttrue\n\t\t\t\t);\n\t\t\t}\n\t\t}, 50 );\n\t}, [ latestContentOffsetY, shouldPreventAutomaticScroll ] );\n\tconst onKeyboardWillShow = useCallback( () => {\n\t\tkeyboardWillShowIndicator.current = true;\n\t}, [] );\n\n\treturn (\n\t\t<AnimatedKeyboardAwareScrollView\n\t\t\tstyle={ [ { flex: 1 }, scrollViewStyle ] }\n\t\t\tkeyboardDismissMode=\"none\"\n\t\t\tenableResetScrollToCoords={ false }\n\t\t\tkeyboardShouldPersistTaps=\"handled\"\n\t\t\textraScrollHeight={ extraScrollHeight }\n\t\t\textraHeight={ 0 }\n\t\t\tinputAccessoryViewHeight={ inputAccessoryViewHeight }\n\t\t\tenableAutomaticScroll={\n\t\t\t\tautoScroll === undefined ? false : autoScroll\n\t\t\t}\n\t\t\tref={ getRef }\n\t\t\tonKeyboardWillHide={ onKeyboardWillHide }\n\t\t\tonKeyboardDidHide={ onKeyboardDidHide }\n\t\t\tonKeyboardWillShow={ onKeyboardWillShow }\n\t\t\tscrollEnabled={ listProps.scrollEnabled }\n\t\t\tonScroll={ scrollHandler }\n\t\t>\n\t\t\t<List { ...listProps } />\n\t\t</AnimatedKeyboardAwareScrollView>\n\t);\n};\n\nKeyboardAwareFlatList.handleCaretVerticalPositionChange = (\n\tscrollView,\n\ttargetId,\n\tcaretY,\n\tpreviousCaretY\n) => {\n\tif ( previousCaretY ) {\n\t\t// If this is not the first tap.\n\t\tscrollView.refreshScrollForField( targetId );\n\t}\n};\n\nexport default KeyboardAwareFlatList;\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/mobile/keyboard-aware-flat-list/index.ios.js"],"names":["KeyboardAwareScrollView","FlatList","fastDeepEqual","Animated","useAnimatedScrollHandler","useSharedValue","memo","useCallback","useRef","List","AnimatedKeyboardAwareScrollView","createAnimatedComponent","KeyboardAwareFlatList","extraScrollHeight","shouldPreventAutomaticScroll","innerRef","autoScroll","scrollViewStyle","inputAccessoryViewHeight","onScroll","listProps","scrollViewRef","keyboardWillShowIndicator","latestContentOffsetY","scrollHandler","event","contentOffset","value","y","getRef","ref","current","onKeyboardWillHide","onKeyboardDidHide","setTimeout","scrollToPosition","onKeyboardWillShow","flex","undefined","scrollEnabled","handleCaretVerticalPositionChange","scrollView","targetId","caretY","previousCaretY","refreshScrollForField"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { KeyboardAwareScrollView } from 'react-native-keyboard-aware-scroll-view';\nimport { FlatList } from 'react-native';\nimport fastDeepEqual from 'fast-deep-equal/es6';\nimport Animated, {\n\tuseAnimatedScrollHandler,\n\tuseSharedValue,\n} from 'react-native-reanimated';\n\n/**\n * WordPress dependencies\n */\nimport { memo, useCallback, useRef } from '@wordpress/element';\n\nconst List = memo( FlatList, fastDeepEqual );\nconst AnimatedKeyboardAwareScrollView = Animated.createAnimatedComponent(\n\tKeyboardAwareScrollView\n);\n\nexport const KeyboardAwareFlatList = ( {\n\textraScrollHeight,\n\tshouldPreventAutomaticScroll,\n\tinnerRef,\n\tautoScroll,\n\tscrollViewStyle,\n\tinputAccessoryViewHeight,\n\tonScroll,\n\t...listProps\n} ) => {\n\tconst scrollViewRef = useRef();\n\tconst keyboardWillShowIndicator = useRef();\n\n\tconst latestContentOffsetY = useSharedValue( -1 );\n\n\tconst scrollHandler = useAnimatedScrollHandler( {\n\t\tonScroll: ( event ) => {\n\t\t\tconst { contentOffset } = event;\n\t\t\tlatestContentOffsetY.value = contentOffset.y;\n\t\t\tonScroll( event );\n\t\t},\n\t} );\n\n\tconst getRef = useCallback(\n\t\t( ref ) => {\n\t\t\tscrollViewRef.current = ref;\n\t\t\tinnerRef( ref );\n\t\t},\n\t\t[ innerRef ]\n\t);\n\tconst onKeyboardWillHide = useCallback( () => {\n\t\tkeyboardWillShowIndicator.current = false;\n\t}, [] );\n\tconst onKeyboardDidHide = useCallback( () => {\n\t\tsetTimeout( () => {\n\t\t\tif (\n\t\t\t\t! keyboardWillShowIndicator.current &&\n\t\t\t\tlatestContentOffsetY.value !== -1 &&\n\t\t\t\t! shouldPreventAutomaticScroll()\n\t\t\t) {\n\t\t\t\t// Reset the content position if keyboard is still closed.\n\t\t\t\tscrollViewRef.current?.scrollToPosition(\n\t\t\t\t\t0,\n\t\t\t\t\tlatestContentOffsetY.value,\n\t\t\t\t\ttrue\n\t\t\t\t);\n\t\t\t}\n\t\t}, 50 );\n\t}, [ latestContentOffsetY, shouldPreventAutomaticScroll ] );\n\tconst onKeyboardWillShow = useCallback( () => {\n\t\tkeyboardWillShowIndicator.current = true;\n\t}, [] );\n\n\treturn (\n\t\t<AnimatedKeyboardAwareScrollView\n\t\t\tstyle={ [ { flex: 1 }, scrollViewStyle ] }\n\t\t\tkeyboardDismissMode=\"none\"\n\t\t\tenableResetScrollToCoords={ false }\n\t\t\tkeyboardShouldPersistTaps=\"handled\"\n\t\t\textraScrollHeight={ extraScrollHeight }\n\t\t\textraHeight={ 0 }\n\t\t\tinputAccessoryViewHeight={ inputAccessoryViewHeight }\n\t\t\tenableAutomaticScroll={\n\t\t\t\tautoScroll === undefined ? false : autoScroll\n\t\t\t}\n\t\t\tref={ getRef }\n\t\t\tonKeyboardWillHide={ onKeyboardWillHide }\n\t\t\tonKeyboardDidHide={ onKeyboardDidHide }\n\t\t\tonKeyboardWillShow={ onKeyboardWillShow }\n\t\t\tscrollEnabled={ listProps.scrollEnabled }\n\t\t\tonScroll={ scrollHandler }\n\t\t>\n\t\t\t<List { ...listProps } />\n\t\t</AnimatedKeyboardAwareScrollView>\n\t);\n};\n\nKeyboardAwareFlatList.handleCaretVerticalPositionChange = (\n\tscrollView,\n\ttargetId,\n\tcaretY,\n\tpreviousCaretY\n) => {\n\tif ( previousCaretY ) {\n\t\t// If this is not the first tap.\n\t\tscrollView.refreshScrollForField( targetId );\n\t}\n};\n\nexport default KeyboardAwareFlatList;\n"]}
@@ -77,6 +77,14 @@ function UnforwardedModal(props, forwardedRef) {
77
77
  }, [bodyOpenClassName]);
78
78
 
79
79
  function handleEscapeKeyDown(event) {
80
+ if ( // Ignore keydowns from IMEs
81
+ event.nativeEvent.isComposing || // Workaround for Mac Safari where the final Enter/Backspace of an IME composition
82
+ // is `isComposing=false`, even though it's technically still part of the composition.
83
+ // These can only be detected by keyCode.
84
+ event.keyCode === 229) {
85
+ return;
86
+ }
87
+
80
88
  if (shouldCloseOnEsc && event.code === 'Escape' && !event.defaultPrevented) {
81
89
  event.preventDefault();
82
90
 
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/modal/index.tsx"],"names":["classnames","createPortal","useCallback","useEffect","useRef","useState","forwardRef","useInstanceId","useFocusReturn","useFocusOnMount","__experimentalUseFocusOutside","useFocusOutside","useConstrainedTabbing","useMergeRefs","__","close","ariaHelper","Button","StyleProvider","openModalCount","UnforwardedModal","props","forwardedRef","bodyOpenClassName","role","title","focusOnMount","shouldCloseOnEsc","shouldCloseOnClickOutside","isDismissible","aria","labelledby","undefined","describedby","onRequestClose","icon","closeButtonLabel","children","style","overlayClassName","className","contentLabel","onKeyDown","isFullScreen","__experimentalHideHeader","ref","instanceId","Modal","headingId","focusOnMountRef","constrainedTabbingRef","focusReturnRef","focusOutsideProps","hasScrolledContent","setHasScrolledContent","hideApp","current","document","body","classList","add","remove","showApp","handleEscapeKeyDown","event","code","defaultPrevented","preventDefault","onContentContainerScroll","e","scrollY","currentTarget","scrollTop"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport type { ForwardedRef, KeyboardEvent, UIEvent } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tcreatePortal,\n\tuseCallback,\n\tuseEffect,\n\tuseRef,\n\tuseState,\n\tforwardRef,\n} from '@wordpress/element';\nimport {\n\tuseInstanceId,\n\tuseFocusReturn,\n\tuseFocusOnMount,\n\t__experimentalUseFocusOutside as useFocusOutside,\n\tuseConstrainedTabbing,\n\tuseMergeRefs,\n} from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport { close } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport * as ariaHelper from './aria-helper';\nimport Button from '../button';\nimport StyleProvider from '../style-provider';\nimport type { ModalProps } from './types';\n\n// Used to count the number of open modals.\nlet openModalCount = 0;\n\nfunction UnforwardedModal(\n\tprops: ModalProps,\n\tforwardedRef: ForwardedRef< HTMLDivElement >\n) {\n\tconst {\n\t\tbodyOpenClassName = 'modal-open',\n\t\trole = 'dialog',\n\t\ttitle = null,\n\t\tfocusOnMount = true,\n\t\tshouldCloseOnEsc = true,\n\t\tshouldCloseOnClickOutside = true,\n\t\tisDismissible = true,\n\t\t/* Accessibility. */\n\t\taria = {\n\t\t\tlabelledby: undefined,\n\t\t\tdescribedby: undefined,\n\t\t},\n\t\tonRequestClose,\n\t\ticon,\n\t\tcloseButtonLabel,\n\t\tchildren,\n\t\tstyle,\n\t\toverlayClassName,\n\t\tclassName,\n\t\tcontentLabel,\n\t\tonKeyDown,\n\t\tisFullScreen = false,\n\t\t__experimentalHideHeader = false,\n\t} = props;\n\n\tconst ref = useRef< HTMLDivElement >();\n\tconst instanceId = useInstanceId( Modal );\n\tconst headingId = title\n\t\t? `components-modal-header-${ instanceId }`\n\t\t: aria.labelledby;\n\tconst focusOnMountRef = useFocusOnMount( focusOnMount );\n\tconst constrainedTabbingRef = useConstrainedTabbing();\n\tconst focusReturnRef = useFocusReturn();\n\tconst focusOutsideProps = useFocusOutside( onRequestClose );\n\n\tconst [ hasScrolledContent, setHasScrolledContent ] = useState( false );\n\n\tuseEffect( () => {\n\t\topenModalCount++;\n\n\t\tif ( openModalCount === 1 ) {\n\t\t\tariaHelper.hideApp( ref.current );\n\t\t\tdocument.body.classList.add( bodyOpenClassName );\n\t\t}\n\n\t\treturn () => {\n\t\t\topenModalCount--;\n\n\t\t\tif ( openModalCount === 0 ) {\n\t\t\t\tdocument.body.classList.remove( bodyOpenClassName );\n\t\t\t\tariaHelper.showApp();\n\t\t\t}\n\t\t};\n\t}, [ bodyOpenClassName ] );\n\n\tfunction handleEscapeKeyDown( event: KeyboardEvent< HTMLDivElement > ) {\n\t\tif (\n\t\t\tshouldCloseOnEsc &&\n\t\t\tevent.code === 'Escape' &&\n\t\t\t! event.defaultPrevented\n\t\t) {\n\t\t\tevent.preventDefault();\n\t\t\tif ( onRequestClose ) {\n\t\t\t\tonRequestClose( event );\n\t\t\t}\n\t\t}\n\t}\n\n\tconst onContentContainerScroll = useCallback(\n\t\t( e: UIEvent< HTMLDivElement > ) => {\n\t\t\tconst scrollY = e?.currentTarget?.scrollTop ?? -1;\n\n\t\t\tif ( ! hasScrolledContent && scrollY > 0 ) {\n\t\t\t\tsetHasScrolledContent( true );\n\t\t\t} else if ( hasScrolledContent && scrollY <= 0 ) {\n\t\t\t\tsetHasScrolledContent( false );\n\t\t\t}\n\t\t},\n\t\t[ hasScrolledContent ]\n\t);\n\n\treturn createPortal(\n\t\t// eslint-disable-next-line jsx-a11y/no-static-element-interactions\n\t\t<div\n\t\t\tref={ useMergeRefs( [ ref, forwardedRef ] ) }\n\t\t\tclassName={ classnames(\n\t\t\t\t'components-modal__screen-overlay',\n\t\t\t\toverlayClassName\n\t\t\t) }\n\t\t\tonKeyDown={ handleEscapeKeyDown }\n\t\t>\n\t\t\t<StyleProvider document={ document }>\n\t\t\t\t<div\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t'components-modal__frame',\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t'is-full-screen': isFullScreen,\n\t\t\t\t\t\t}\n\t\t\t\t\t) }\n\t\t\t\t\tstyle={ style }\n\t\t\t\t\tref={ useMergeRefs( [\n\t\t\t\t\t\tconstrainedTabbingRef,\n\t\t\t\t\t\tfocusReturnRef,\n\t\t\t\t\t\tfocusOnMountRef,\n\t\t\t\t\t] ) }\n\t\t\t\t\trole={ role }\n\t\t\t\t\taria-label={ contentLabel }\n\t\t\t\t\taria-labelledby={ contentLabel ? undefined : headingId }\n\t\t\t\t\taria-describedby={ aria.describedby }\n\t\t\t\t\ttabIndex={ -1 }\n\t\t\t\t\t{ ...( shouldCloseOnClickOutside\n\t\t\t\t\t\t? focusOutsideProps\n\t\t\t\t\t\t: {} ) }\n\t\t\t\t\tonKeyDown={ onKeyDown }\n\t\t\t\t>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={ classnames( 'components-modal__content', {\n\t\t\t\t\t\t\t'hide-header': __experimentalHideHeader,\n\t\t\t\t\t\t\t'has-scrolled-content': hasScrolledContent,\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t\trole=\"document\"\n\t\t\t\t\t\tonScroll={ onContentContainerScroll }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ! __experimentalHideHeader && (\n\t\t\t\t\t\t\t<div className=\"components-modal__header\">\n\t\t\t\t\t\t\t\t<div className=\"components-modal__header-heading-container\">\n\t\t\t\t\t\t\t\t\t{ icon && (\n\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"components-modal__icon-container\"\n\t\t\t\t\t\t\t\t\t\t\taria-hidden\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ icon }\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ title && (\n\t\t\t\t\t\t\t\t\t\t<h1\n\t\t\t\t\t\t\t\t\t\t\tid={ headingId }\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"components-modal__header-heading\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ title }\n\t\t\t\t\t\t\t\t\t\t</h1>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t{ isDismissible && (\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tonClick={ onRequestClose }\n\t\t\t\t\t\t\t\t\t\ticon={ close }\n\t\t\t\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t\t\t\tcloseButtonLabel ||\n\t\t\t\t\t\t\t\t\t\t\t__( 'Close dialog' )\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</div>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ children }\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</StyleProvider>\n\t\t</div>,\n\t\tdocument.body\n\t);\n}\n\n/**\n * Modals give users information and choices related to a task they’re trying to\n * accomplish. They can contain critical information, require decisions, or\n * involve multiple tasks.\n *\n * ```jsx\n * import { Button, Modal } from '@wordpress/components';\n * import { useState } from '@wordpress/element';\n *\n * const MyModal = () => {\n * const [ isOpen, setOpen ] = useState( false );\n * const openModal = () => setOpen( true );\n * const closeModal = () => setOpen( false );\n *\n * return (\n * <>\n * <Button variant=\"secondary\" onClick={ openModal }>\n * Open Modal\n * </Button>\n * { isOpen && (\n * <Modal title=\"This is my modal\" onRequestClose={ closeModal }>\n * <Button variant=\"secondary\" onClick={ closeModal }>\n * My custom close button\n * </Button>\n * </Modal>\n * ) }\n * </>\n * );\n * };\n * ```\n */\nexport const Modal = forwardRef( UnforwardedModal );\n\nexport default Modal;\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/modal/index.tsx"],"names":["classnames","createPortal","useCallback","useEffect","useRef","useState","forwardRef","useInstanceId","useFocusReturn","useFocusOnMount","__experimentalUseFocusOutside","useFocusOutside","useConstrainedTabbing","useMergeRefs","__","close","ariaHelper","Button","StyleProvider","openModalCount","UnforwardedModal","props","forwardedRef","bodyOpenClassName","role","title","focusOnMount","shouldCloseOnEsc","shouldCloseOnClickOutside","isDismissible","aria","labelledby","undefined","describedby","onRequestClose","icon","closeButtonLabel","children","style","overlayClassName","className","contentLabel","onKeyDown","isFullScreen","__experimentalHideHeader","ref","instanceId","Modal","headingId","focusOnMountRef","constrainedTabbingRef","focusReturnRef","focusOutsideProps","hasScrolledContent","setHasScrolledContent","hideApp","current","document","body","classList","add","remove","showApp","handleEscapeKeyDown","event","nativeEvent","isComposing","keyCode","code","defaultPrevented","preventDefault","onContentContainerScroll","e","scrollY","currentTarget","scrollTop"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport type { ForwardedRef, KeyboardEvent, UIEvent } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tcreatePortal,\n\tuseCallback,\n\tuseEffect,\n\tuseRef,\n\tuseState,\n\tforwardRef,\n} from '@wordpress/element';\nimport {\n\tuseInstanceId,\n\tuseFocusReturn,\n\tuseFocusOnMount,\n\t__experimentalUseFocusOutside as useFocusOutside,\n\tuseConstrainedTabbing,\n\tuseMergeRefs,\n} from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport { close } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport * as ariaHelper from './aria-helper';\nimport Button from '../button';\nimport StyleProvider from '../style-provider';\nimport type { ModalProps } from './types';\n\n// Used to count the number of open modals.\nlet openModalCount = 0;\n\nfunction UnforwardedModal(\n\tprops: ModalProps,\n\tforwardedRef: ForwardedRef< HTMLDivElement >\n) {\n\tconst {\n\t\tbodyOpenClassName = 'modal-open',\n\t\trole = 'dialog',\n\t\ttitle = null,\n\t\tfocusOnMount = true,\n\t\tshouldCloseOnEsc = true,\n\t\tshouldCloseOnClickOutside = true,\n\t\tisDismissible = true,\n\t\t/* Accessibility. */\n\t\taria = {\n\t\t\tlabelledby: undefined,\n\t\t\tdescribedby: undefined,\n\t\t},\n\t\tonRequestClose,\n\t\ticon,\n\t\tcloseButtonLabel,\n\t\tchildren,\n\t\tstyle,\n\t\toverlayClassName,\n\t\tclassName,\n\t\tcontentLabel,\n\t\tonKeyDown,\n\t\tisFullScreen = false,\n\t\t__experimentalHideHeader = false,\n\t} = props;\n\n\tconst ref = useRef< HTMLDivElement >();\n\tconst instanceId = useInstanceId( Modal );\n\tconst headingId = title\n\t\t? `components-modal-header-${ instanceId }`\n\t\t: aria.labelledby;\n\tconst focusOnMountRef = useFocusOnMount( focusOnMount );\n\tconst constrainedTabbingRef = useConstrainedTabbing();\n\tconst focusReturnRef = useFocusReturn();\n\tconst focusOutsideProps = useFocusOutside( onRequestClose );\n\n\tconst [ hasScrolledContent, setHasScrolledContent ] = useState( false );\n\n\tuseEffect( () => {\n\t\topenModalCount++;\n\n\t\tif ( openModalCount === 1 ) {\n\t\t\tariaHelper.hideApp( ref.current );\n\t\t\tdocument.body.classList.add( bodyOpenClassName );\n\t\t}\n\n\t\treturn () => {\n\t\t\topenModalCount--;\n\n\t\t\tif ( openModalCount === 0 ) {\n\t\t\t\tdocument.body.classList.remove( bodyOpenClassName );\n\t\t\t\tariaHelper.showApp();\n\t\t\t}\n\t\t};\n\t}, [ bodyOpenClassName ] );\n\n\tfunction handleEscapeKeyDown( event: KeyboardEvent< HTMLDivElement > ) {\n\t\tif (\n\t\t\t// Ignore keydowns from IMEs\n\t\t\tevent.nativeEvent.isComposing ||\n\t\t\t// Workaround for Mac Safari where the final Enter/Backspace of an IME composition\n\t\t\t// is `isComposing=false`, even though it's technically still part of the composition.\n\t\t\t// These can only be detected by keyCode.\n\t\t\tevent.keyCode === 229\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (\n\t\t\tshouldCloseOnEsc &&\n\t\t\tevent.code === 'Escape' &&\n\t\t\t! event.defaultPrevented\n\t\t) {\n\t\t\tevent.preventDefault();\n\t\t\tif ( onRequestClose ) {\n\t\t\t\tonRequestClose( event );\n\t\t\t}\n\t\t}\n\t}\n\n\tconst onContentContainerScroll = useCallback(\n\t\t( e: UIEvent< HTMLDivElement > ) => {\n\t\t\tconst scrollY = e?.currentTarget?.scrollTop ?? -1;\n\n\t\t\tif ( ! hasScrolledContent && scrollY > 0 ) {\n\t\t\t\tsetHasScrolledContent( true );\n\t\t\t} else if ( hasScrolledContent && scrollY <= 0 ) {\n\t\t\t\tsetHasScrolledContent( false );\n\t\t\t}\n\t\t},\n\t\t[ hasScrolledContent ]\n\t);\n\n\treturn createPortal(\n\t\t// eslint-disable-next-line jsx-a11y/no-static-element-interactions\n\t\t<div\n\t\t\tref={ useMergeRefs( [ ref, forwardedRef ] ) }\n\t\t\tclassName={ classnames(\n\t\t\t\t'components-modal__screen-overlay',\n\t\t\t\toverlayClassName\n\t\t\t) }\n\t\t\tonKeyDown={ handleEscapeKeyDown }\n\t\t>\n\t\t\t<StyleProvider document={ document }>\n\t\t\t\t<div\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t'components-modal__frame',\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t'is-full-screen': isFullScreen,\n\t\t\t\t\t\t}\n\t\t\t\t\t) }\n\t\t\t\t\tstyle={ style }\n\t\t\t\t\tref={ useMergeRefs( [\n\t\t\t\t\t\tconstrainedTabbingRef,\n\t\t\t\t\t\tfocusReturnRef,\n\t\t\t\t\t\tfocusOnMountRef,\n\t\t\t\t\t] ) }\n\t\t\t\t\trole={ role }\n\t\t\t\t\taria-label={ contentLabel }\n\t\t\t\t\taria-labelledby={ contentLabel ? undefined : headingId }\n\t\t\t\t\taria-describedby={ aria.describedby }\n\t\t\t\t\ttabIndex={ -1 }\n\t\t\t\t\t{ ...( shouldCloseOnClickOutside\n\t\t\t\t\t\t? focusOutsideProps\n\t\t\t\t\t\t: {} ) }\n\t\t\t\t\tonKeyDown={ onKeyDown }\n\t\t\t\t>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={ classnames( 'components-modal__content', {\n\t\t\t\t\t\t\t'hide-header': __experimentalHideHeader,\n\t\t\t\t\t\t\t'has-scrolled-content': hasScrolledContent,\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t\trole=\"document\"\n\t\t\t\t\t\tonScroll={ onContentContainerScroll }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ! __experimentalHideHeader && (\n\t\t\t\t\t\t\t<div className=\"components-modal__header\">\n\t\t\t\t\t\t\t\t<div className=\"components-modal__header-heading-container\">\n\t\t\t\t\t\t\t\t\t{ icon && (\n\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"components-modal__icon-container\"\n\t\t\t\t\t\t\t\t\t\t\taria-hidden\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ icon }\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ title && (\n\t\t\t\t\t\t\t\t\t\t<h1\n\t\t\t\t\t\t\t\t\t\t\tid={ headingId }\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"components-modal__header-heading\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ title }\n\t\t\t\t\t\t\t\t\t\t</h1>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t{ isDismissible && (\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tonClick={ onRequestClose }\n\t\t\t\t\t\t\t\t\t\ticon={ close }\n\t\t\t\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t\t\t\tcloseButtonLabel ||\n\t\t\t\t\t\t\t\t\t\t\t__( 'Close dialog' )\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</div>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ children }\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</StyleProvider>\n\t\t</div>,\n\t\tdocument.body\n\t);\n}\n\n/**\n * Modals give users information and choices related to a task they’re trying to\n * accomplish. They can contain critical information, require decisions, or\n * involve multiple tasks.\n *\n * ```jsx\n * import { Button, Modal } from '@wordpress/components';\n * import { useState } from '@wordpress/element';\n *\n * const MyModal = () => {\n * const [ isOpen, setOpen ] = useState( false );\n * const openModal = () => setOpen( true );\n * const closeModal = () => setOpen( false );\n *\n * return (\n * <>\n * <Button variant=\"secondary\" onClick={ openModal }>\n * Open Modal\n * </Button>\n * { isOpen && (\n * <Modal title=\"This is my modal\" onRequestClose={ closeModal }>\n * <Button variant=\"secondary\" onClick={ closeModal }>\n * My custom close button\n * </Button>\n * </Modal>\n * ) }\n * </>\n * );\n * };\n * ```\n */\nexport const Modal = forwardRef( UnforwardedModal );\n\nexport default Modal;\n"]}
@@ -27,7 +27,7 @@ var _ref = process.env.NODE_ENV === "production" ? {
27
27
  } : {
28
28
  name: "192ebb7-classes",
29
29
  styles: "overflow-x:hidden;label:classes;",
30
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkB3b3JkcHJlc3MvY29tcG9uZW50cy9zcmMvbmF2aWdhdG9yL25hdmlnYXRvci1wcm92aWRlci9jb21wb25lbnQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXNGWSIsImZpbGUiOiJAd29yZHByZXNzL2NvbXBvbmVudHMvc3JjL25hdmlnYXRvci9uYXZpZ2F0b3ItcHJvdmlkZXIvY29tcG9uZW50LnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRXh0ZXJuYWwgZGVwZW5kZW5jaWVzXG4gKi9cbmltcG9ydCB0eXBlIHsgRm9yd2FyZGVkUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuXG4vKipcbiAqIFdvcmRQcmVzcyBkZXBlbmRlbmNpZXNcbiAqL1xuaW1wb3J0IHsgdXNlTWVtbywgdXNlU3RhdGUsIHVzZUNhbGxiYWNrIH0gZnJvbSAnQHdvcmRwcmVzcy9lbGVtZW50JztcblxuLyoqXG4gKiBJbnRlcm5hbCBkZXBlbmRlbmNpZXNcbiAqL1xuaW1wb3J0IHtcblx0Y29udGV4dENvbm5lY3QsXG5cdHVzZUNvbnRleHRTeXN0ZW0sXG5cdFdvcmRQcmVzc0NvbXBvbmVudFByb3BzLFxufSBmcm9tICcuLi8uLi91aS9jb250ZXh0JztcbmltcG9ydCB7IHVzZUN4IH0gZnJvbSAnLi4vLi4vdXRpbHMvaG9va3MvdXNlLWN4JztcbmltcG9ydCB7IFZpZXcgfSBmcm9tICcuLi8uLi92aWV3JztcbmltcG9ydCB7IE5hdmlnYXRvckNvbnRleHQgfSBmcm9tICcuLi9jb250ZXh0JztcbmltcG9ydCB0eXBlIHtcblx0TmF2aWdhdG9yUHJvdmlkZXJQcm9wcyxcblx0TmF2aWdhdG9yTG9jYXRpb24sXG5cdE5hdmlnYXRvckNvbnRleHQgYXMgTmF2aWdhdG9yQ29udGV4dFR5cGUsXG59IGZyb20gJy4uL3R5cGVzJztcblxuZnVuY3Rpb24gVW5jb25uZWN0ZWROYXZpZ2F0b3JQcm92aWRlcihcblx0cHJvcHM6IFdvcmRQcmVzc0NvbXBvbmVudFByb3BzPCBOYXZpZ2F0b3JQcm92aWRlclByb3BzLCAnZGl2JyA+LFxuXHRmb3J3YXJkZWRSZWY6IEZvcndhcmRlZFJlZjwgYW55ID5cbikge1xuXHRjb25zdCB7IGluaXRpYWxQYXRoLCBjaGlsZHJlbiwgY2xhc3NOYW1lLCAuLi5vdGhlclByb3BzIH0gPVxuXHRcdHVzZUNvbnRleHRTeXN0ZW0oIHByb3BzLCAnTmF2aWdhdG9yUHJvdmlkZXInICk7XG5cblx0Y29uc3QgWyBsb2NhdGlvbkhpc3RvcnksIHNldExvY2F0aW9uSGlzdG9yeSBdID0gdXNlU3RhdGU8XG5cdFx0TmF2aWdhdG9yTG9jYXRpb25bXVxuXHQ+KCBbXG5cdFx0e1xuXHRcdFx0cGF0aDogaW5pdGlhbFBhdGgsXG5cdFx0fSxcblx0XSApO1xuXG5cdGNvbnN0IGdvVG86IE5hdmlnYXRvckNvbnRleHRUeXBlWyAnZ29UbycgXSA9IHVzZUNhbGxiYWNrKFxuXHRcdCggcGF0aCwgb3B0aW9ucyA9IHt9ICkgPT4ge1xuXHRcdFx0c2V0TG9jYXRpb25IaXN0b3J5KCBbXG5cdFx0XHRcdC4uLmxvY2F0aW9uSGlzdG9yeSxcblx0XHRcdFx0e1xuXHRcdFx0XHRcdC4uLm9wdGlvbnMsXG5cdFx0XHRcdFx0cGF0aCxcblx0XHRcdFx0XHRpc0JhY2s6IGZhbHNlLFxuXHRcdFx0XHRcdGhhc1Jlc3RvcmVkRm9jdXM6IGZhbHNlLFxuXHRcdFx0XHR9LFxuXHRcdFx0XSApO1xuXHRcdH0sXG5cdFx0WyBsb2NhdGlvbkhpc3RvcnkgXVxuXHQpO1xuXG5cdGNvbnN0IGdvQmFjazogTmF2aWdhdG9yQ29udGV4dFR5cGVbICdnb0JhY2snIF0gPSB1c2VDYWxsYmFjayggKCkgPT4ge1xuXHRcdGlmICggbG9jYXRpb25IaXN0b3J5Lmxlbmd0aCA+IDEgKSB7XG5cdFx0XHRzZXRMb2NhdGlvbkhpc3RvcnkoIFtcblx0XHRcdFx0Li4ubG9jYXRpb25IaXN0b3J5LnNsaWNlKCAwLCAtMiApLFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0Li4ubG9jYXRpb25IaXN0b3J5WyBsb2NhdGlvbkhpc3RvcnkubGVuZ3RoIC0gMiBdLFxuXHRcdFx0XHRcdGlzQmFjazogdHJ1ZSxcblx0XHRcdFx0XHRoYXNSZXN0b3JlZEZvY3VzOiBmYWxzZSxcblx0XHRcdFx0fSxcblx0XHRcdF0gKTtcblx0XHR9XG5cdH0sIFsgbG9jYXRpb25IaXN0b3J5IF0gKTtcblxuXHRjb25zdCBuYXZpZ2F0b3JDb250ZXh0VmFsdWU6IE5hdmlnYXRvckNvbnRleHRUeXBlID0gdXNlTWVtbyhcblx0XHQoKSA9PiAoIHtcblx0XHRcdGxvY2F0aW9uOiB7XG5cdFx0XHRcdC4uLmxvY2F0aW9uSGlzdG9yeVsgbG9jYXRpb25IaXN0b3J5Lmxlbmd0aCAtIDEgXSxcblx0XHRcdFx0aXNJbml0aWFsOiBsb2NhdGlvbkhpc3RvcnkubGVuZ3RoID09PSAxLFxuXHRcdFx0fSxcblx0XHRcdGdvVG8sXG5cdFx0XHRnb0JhY2ssXG5cdFx0fSApLFxuXHRcdFsgbG9jYXRpb25IaXN0b3J5LCBnb1RvLCBnb0JhY2sgXVxuXHQpO1xuXG5cdGNvbnN0IGN4ID0gdXNlQ3goKTtcblx0Y29uc3QgY2xhc3NlcyA9IHVzZU1lbW8oXG5cdFx0Ly8gUHJldmVudHMgaG9yaXpvbnRhbCBvdmVyZmxvdyB3aGlsZSBhbmltYXRpbmcgc2NyZWVuIHRyYW5zaXRpb25zLlxuXHRcdCgpID0+IGN4KCBjc3MoIHsgb3ZlcmZsb3dYOiAnaGlkZGVuJyB9ICksIGNsYXNzTmFtZSApLFxuXHRcdFsgY2xhc3NOYW1lLCBjeCBdXG5cdCk7XG5cblx0cmV0dXJuIChcblx0XHQ8VmlldyByZWY9eyBmb3J3YXJkZWRSZWYgfSBjbGFzc05hbWU9eyBjbGFzc2VzIH0geyAuLi5vdGhlclByb3BzIH0+XG5cdFx0XHQ8TmF2aWdhdG9yQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17IG5hdmlnYXRvckNvbnRleHRWYWx1ZSB9PlxuXHRcdFx0XHR7IGNoaWxkcmVuIH1cblx0XHRcdDwvTmF2aWdhdG9yQ29udGV4dC5Qcm92aWRlcj5cblx0XHQ8L1ZpZXc+XG5cdCk7XG59XG5cbi8qKlxuICogVGhlIGBOYXZpZ2F0b3JQcm92aWRlcmAgY29tcG9uZW50IGFsbG93cyByZW5kZXJpbmcgbmVzdGVkIHZpZXdzL3BhbmVscy9tZW51c1xuICogKHZpYSB0aGUgYE5hdmlnYXRvclNjcmVlbmAgY29tcG9uZW50IGFuZCBuYXZpZ2F0ZSBiZXR3ZWVuIHRoZXNlIGRpZmZlcmVudFxuICogdmlldyAodmlhIHRoZSBgTmF2aWdhdG9yQnV0dG9uYCBhbmQgYE5hdmlnYXRvckJhY2tCdXR0b25gIGNvbXBvbmVudHMgb3IgdGhlXG4gKiBgdXNlTmF2aWdhdG9yYCBob29rKS5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBganN4XG4gKiBpbXBvcnQge1xuICogICBfX2V4cGVyaW1lbnRhbE5hdmlnYXRvclByb3ZpZGVyIGFzIE5hdmlnYXRvclByb3ZpZGVyLFxuICogICBfX2V4cGVyaW1lbnRhbE5hdmlnYXRvclNjcmVlbiBhcyBOYXZpZ2F0b3JTY3JlZW4sXG4gKiAgIF9fZXhwZXJpbWVudGFsTmF2aWdhdG9yQnV0dG9uIGFzIE5hdmlnYXRvckJ1dHRvbixcbiAqICAgX19leHBlcmltZW50YWxOYXZpZ2F0b3JCYWNrQnV0dG9uIGFzIE5hdmlnYXRvckJhY2tCdXR0b24sXG4gKiB9IGZyb20gJ0B3b3JkcHJlc3MvY29tcG9uZW50cyc7XG4gKlxuICogY29uc3QgTXlOYXZpZ2F0aW9uID0gKCkgPT4gKFxuICogICA8TmF2aWdhdG9yUHJvdmlkZXIgaW5pdGlhbFBhdGg9XCIvXCI+XG4gKiAgICAgPE5hdmlnYXRvclNjcmVlbiBwYXRoPVwiL1wiPlxuICogICAgICAgPHA+VGhpcyBpcyB0aGUgaG9tZSBzY3JlZW4uPC9wPlxuICogICAgICAgIDxOYXZpZ2F0b3JCdXR0b24gcGF0aD1cIi9jaGlsZFwiPlxuICogICAgICAgICAgTmF2aWdhdGUgdG8gY2hpbGQgc2NyZWVuLlxuICogICAgICAgPC9OYXZpZ2F0b3JCdXR0b24+XG4gKiAgICAgPC9OYXZpZ2F0b3JTY3JlZW4+XG4gKlxuICogICAgIDxOYXZpZ2F0b3JTY3JlZW4gcGF0aD1cIi9jaGlsZFwiPlxuICogICAgICAgPHA+VGhpcyBpcyB0aGUgY2hpbGQgc2NyZWVuLjwvcD5cbiAqICAgICAgIDxOYXZpZ2F0b3JCYWNrQnV0dG9uPlxuICogICAgICAgICBHbyBiYWNrXG4gKiAgICAgICA8L05hdmlnYXRvckJhY2tCdXR0b24+XG4gKiAgICAgPC9OYXZpZ2F0b3JTY3JlZW4+XG4gKiAgIDwvTmF2aWdhdG9yUHJvdmlkZXI+XG4gKiApO1xuICogYGBgXG4gKi9cbmV4cG9ydCBjb25zdCBOYXZpZ2F0b3JQcm92aWRlciA9IGNvbnRleHRDb25uZWN0KFxuXHRVbmNvbm5lY3RlZE5hdmlnYXRvclByb3ZpZGVyLFxuXHQnTmF2aWdhdG9yUHJvdmlkZXInXG4pO1xuXG5leHBvcnQgZGVmYXVsdCBOYXZpZ2F0b3JQcm92aWRlcjtcbiJdfQ== */",
30
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkB3b3JkcHJlc3MvY29tcG9uZW50cy9zcmMvbmF2aWdhdG9yL25hdmlnYXRvci1wcm92aWRlci9jb21wb25lbnQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXlGWSIsImZpbGUiOiJAd29yZHByZXNzL2NvbXBvbmVudHMvc3JjL25hdmlnYXRvci9uYXZpZ2F0b3ItcHJvdmlkZXIvY29tcG9uZW50LnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRXh0ZXJuYWwgZGVwZW5kZW5jaWVzXG4gKi9cbmltcG9ydCB0eXBlIHsgRm9yd2FyZGVkUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuXG4vKipcbiAqIFdvcmRQcmVzcyBkZXBlbmRlbmNpZXNcbiAqL1xuaW1wb3J0IHsgdXNlTWVtbywgdXNlU3RhdGUsIHVzZUNhbGxiYWNrIH0gZnJvbSAnQHdvcmRwcmVzcy9lbGVtZW50JztcblxuLyoqXG4gKiBJbnRlcm5hbCBkZXBlbmRlbmNpZXNcbiAqL1xuaW1wb3J0IHtcblx0Y29udGV4dENvbm5lY3QsXG5cdHVzZUNvbnRleHRTeXN0ZW0sXG5cdFdvcmRQcmVzc0NvbXBvbmVudFByb3BzLFxufSBmcm9tICcuLi8uLi91aS9jb250ZXh0JztcbmltcG9ydCB7IHVzZUN4IH0gZnJvbSAnLi4vLi4vdXRpbHMvaG9va3MvdXNlLWN4JztcbmltcG9ydCB7IFZpZXcgfSBmcm9tICcuLi8uLi92aWV3JztcbmltcG9ydCB7IE5hdmlnYXRvckNvbnRleHQgfSBmcm9tICcuLi9jb250ZXh0JztcbmltcG9ydCB0eXBlIHtcblx0TmF2aWdhdG9yUHJvdmlkZXJQcm9wcyxcblx0TmF2aWdhdG9yTG9jYXRpb24sXG5cdE5hdmlnYXRvckNvbnRleHQgYXMgTmF2aWdhdG9yQ29udGV4dFR5cGUsXG59IGZyb20gJy4uL3R5cGVzJztcblxuZnVuY3Rpb24gVW5jb25uZWN0ZWROYXZpZ2F0b3JQcm92aWRlcihcblx0cHJvcHM6IFdvcmRQcmVzc0NvbXBvbmVudFByb3BzPCBOYXZpZ2F0b3JQcm92aWRlclByb3BzLCAnZGl2JyA+LFxuXHRmb3J3YXJkZWRSZWY6IEZvcndhcmRlZFJlZjwgYW55ID5cbikge1xuXHRjb25zdCB7IGluaXRpYWxQYXRoLCBjaGlsZHJlbiwgY2xhc3NOYW1lLCAuLi5vdGhlclByb3BzIH0gPVxuXHRcdHVzZUNvbnRleHRTeXN0ZW0oIHByb3BzLCAnTmF2aWdhdG9yUHJvdmlkZXInICk7XG5cblx0Y29uc3QgWyBsb2NhdGlvbkhpc3RvcnksIHNldExvY2F0aW9uSGlzdG9yeSBdID0gdXNlU3RhdGU8XG5cdFx0TmF2aWdhdG9yTG9jYXRpb25bXVxuXHQ+KCBbXG5cdFx0e1xuXHRcdFx0cGF0aDogaW5pdGlhbFBhdGgsXG5cdFx0fSxcblx0XSApO1xuXG5cdGNvbnN0IGdvVG86IE5hdmlnYXRvckNvbnRleHRUeXBlWyAnZ29UbycgXSA9IHVzZUNhbGxiYWNrKFxuXHRcdCggcGF0aCwgb3B0aW9ucyA9IHt9ICkgPT4ge1xuXHRcdFx0c2V0TG9jYXRpb25IaXN0b3J5KCAoIHByZXZMb2NhdGlvbkhpc3RvcnkgKSA9PiBbXG5cdFx0XHRcdC4uLnByZXZMb2NhdGlvbkhpc3RvcnksXG5cdFx0XHRcdHtcblx0XHRcdFx0XHQuLi5vcHRpb25zLFxuXHRcdFx0XHRcdHBhdGgsXG5cdFx0XHRcdFx0aXNCYWNrOiBmYWxzZSxcblx0XHRcdFx0XHRoYXNSZXN0b3JlZEZvY3VzOiBmYWxzZSxcblx0XHRcdFx0fSxcblx0XHRcdF0gKTtcblx0XHR9LFxuXHRcdFtdXG5cdCk7XG5cblx0Y29uc3QgZ29CYWNrOiBOYXZpZ2F0b3JDb250ZXh0VHlwZVsgJ2dvQmFjaycgXSA9IHVzZUNhbGxiYWNrKCAoKSA9PiB7XG5cdFx0c2V0TG9jYXRpb25IaXN0b3J5KCAoIHByZXZMb2NhdGlvbkhpc3RvcnkgKSA9PiB7XG5cdFx0XHRpZiAoIHByZXZMb2NhdGlvbkhpc3RvcnkubGVuZ3RoIDw9IDEgKSB7XG5cdFx0XHRcdHJldHVybiBwcmV2TG9jYXRpb25IaXN0b3J5O1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIFtcblx0XHRcdFx0Li4ucHJldkxvY2F0aW9uSGlzdG9yeS5zbGljZSggMCwgLTIgKSxcblx0XHRcdFx0e1xuXHRcdFx0XHRcdC4uLnByZXZMb2NhdGlvbkhpc3RvcnlbIHByZXZMb2NhdGlvbkhpc3RvcnkubGVuZ3RoIC0gMiBdLFxuXHRcdFx0XHRcdGlzQmFjazogdHJ1ZSxcblx0XHRcdFx0XHRoYXNSZXN0b3JlZEZvY3VzOiBmYWxzZSxcblx0XHRcdFx0fSxcblx0XHRcdF07XG5cdFx0fSApO1xuXHR9LCBbXSApO1xuXG5cdGNvbnN0IG5hdmlnYXRvckNvbnRleHRWYWx1ZTogTmF2aWdhdG9yQ29udGV4dFR5cGUgPSB1c2VNZW1vKFxuXHRcdCgpID0+ICgge1xuXHRcdFx0bG9jYXRpb246IHtcblx0XHRcdFx0Li4ubG9jYXRpb25IaXN0b3J5WyBsb2NhdGlvbkhpc3RvcnkubGVuZ3RoIC0gMSBdLFxuXHRcdFx0XHRpc0luaXRpYWw6IGxvY2F0aW9uSGlzdG9yeS5sZW5ndGggPT09IDEsXG5cdFx0XHR9LFxuXHRcdFx0Z29Ubyxcblx0XHRcdGdvQmFjayxcblx0XHR9ICksXG5cdFx0WyBsb2NhdGlvbkhpc3RvcnksIGdvVG8sIGdvQmFjayBdXG5cdCk7XG5cblx0Y29uc3QgY3ggPSB1c2VDeCgpO1xuXHRjb25zdCBjbGFzc2VzID0gdXNlTWVtbyhcblx0XHQvLyBQcmV2ZW50cyBob3Jpem9udGFsIG92ZXJmbG93IHdoaWxlIGFuaW1hdGluZyBzY3JlZW4gdHJhbnNpdGlvbnMuXG5cdFx0KCkgPT4gY3goIGNzcyggeyBvdmVyZmxvd1g6ICdoaWRkZW4nIH0gKSwgY2xhc3NOYW1lICksXG5cdFx0WyBjbGFzc05hbWUsIGN4IF1cblx0KTtcblxuXHRyZXR1cm4gKFxuXHRcdDxWaWV3IHJlZj17IGZvcndhcmRlZFJlZiB9IGNsYXNzTmFtZT17IGNsYXNzZXMgfSB7IC4uLm90aGVyUHJvcHMgfT5cblx0XHRcdDxOYXZpZ2F0b3JDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXsgbmF2aWdhdG9yQ29udGV4dFZhbHVlIH0+XG5cdFx0XHRcdHsgY2hpbGRyZW4gfVxuXHRcdFx0PC9OYXZpZ2F0b3JDb250ZXh0LlByb3ZpZGVyPlxuXHRcdDwvVmlldz5cblx0KTtcbn1cblxuLyoqXG4gKiBUaGUgYE5hdmlnYXRvclByb3ZpZGVyYCBjb21wb25lbnQgYWxsb3dzIHJlbmRlcmluZyBuZXN0ZWQgdmlld3MvcGFuZWxzL21lbnVzXG4gKiAodmlhIHRoZSBgTmF2aWdhdG9yU2NyZWVuYCBjb21wb25lbnQgYW5kIG5hdmlnYXRlIGJldHdlZW4gdGhlc2UgZGlmZmVyZW50XG4gKiB2aWV3ICh2aWEgdGhlIGBOYXZpZ2F0b3JCdXR0b25gIGFuZCBgTmF2aWdhdG9yQmFja0J1dHRvbmAgY29tcG9uZW50cyBvciB0aGVcbiAqIGB1c2VOYXZpZ2F0b3JgIGhvb2spLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBqc3hcbiAqIGltcG9ydCB7XG4gKiAgIF9fZXhwZXJpbWVudGFsTmF2aWdhdG9yUHJvdmlkZXIgYXMgTmF2aWdhdG9yUHJvdmlkZXIsXG4gKiAgIF9fZXhwZXJpbWVudGFsTmF2aWdhdG9yU2NyZWVuIGFzIE5hdmlnYXRvclNjcmVlbixcbiAqICAgX19leHBlcmltZW50YWxOYXZpZ2F0b3JCdXR0b24gYXMgTmF2aWdhdG9yQnV0dG9uLFxuICogICBfX2V4cGVyaW1lbnRhbE5hdmlnYXRvckJhY2tCdXR0b24gYXMgTmF2aWdhdG9yQmFja0J1dHRvbixcbiAqIH0gZnJvbSAnQHdvcmRwcmVzcy9jb21wb25lbnRzJztcbiAqXG4gKiBjb25zdCBNeU5hdmlnYXRpb24gPSAoKSA9PiAoXG4gKiAgIDxOYXZpZ2F0b3JQcm92aWRlciBpbml0aWFsUGF0aD1cIi9cIj5cbiAqICAgICA8TmF2aWdhdG9yU2NyZWVuIHBhdGg9XCIvXCI+XG4gKiAgICAgICA8cD5UaGlzIGlzIHRoZSBob21lIHNjcmVlbi48L3A+XG4gKiAgICAgICAgPE5hdmlnYXRvckJ1dHRvbiBwYXRoPVwiL2NoaWxkXCI+XG4gKiAgICAgICAgICBOYXZpZ2F0ZSB0byBjaGlsZCBzY3JlZW4uXG4gKiAgICAgICA8L05hdmlnYXRvckJ1dHRvbj5cbiAqICAgICA8L05hdmlnYXRvclNjcmVlbj5cbiAqXG4gKiAgICAgPE5hdmlnYXRvclNjcmVlbiBwYXRoPVwiL2NoaWxkXCI+XG4gKiAgICAgICA8cD5UaGlzIGlzIHRoZSBjaGlsZCBzY3JlZW4uPC9wPlxuICogICAgICAgPE5hdmlnYXRvckJhY2tCdXR0b24+XG4gKiAgICAgICAgIEdvIGJhY2tcbiAqICAgICAgIDwvTmF2aWdhdG9yQmFja0J1dHRvbj5cbiAqICAgICA8L05hdmlnYXRvclNjcmVlbj5cbiAqICAgPC9OYXZpZ2F0b3JQcm92aWRlcj5cbiAqICk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNvbnN0IE5hdmlnYXRvclByb3ZpZGVyID0gY29udGV4dENvbm5lY3QoXG5cdFVuY29ubmVjdGVkTmF2aWdhdG9yUHJvdmlkZXIsXG5cdCdOYXZpZ2F0b3JQcm92aWRlcidcbik7XG5cbmV4cG9ydCBkZWZhdWx0IE5hdmlnYXRvclByb3ZpZGVyO1xuIl19 */",
31
31
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
32
32
  };
33
33
 
@@ -43,20 +43,24 @@ function UnconnectedNavigatorProvider(props, forwardedRef) {
43
43
  }]);
44
44
  const goTo = useCallback(function (path) {
45
45
  let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
46
- setLocationHistory([...locationHistory, { ...options,
46
+ setLocationHistory(prevLocationHistory => [...prevLocationHistory, { ...options,
47
47
  path,
48
48
  isBack: false,
49
49
  hasRestoredFocus: false
50
50
  }]);
51
- }, [locationHistory]);
51
+ }, []);
52
52
  const goBack = useCallback(() => {
53
- if (locationHistory.length > 1) {
54
- setLocationHistory([...locationHistory.slice(0, -2), { ...locationHistory[locationHistory.length - 2],
53
+ setLocationHistory(prevLocationHistory => {
54
+ if (prevLocationHistory.length <= 1) {
55
+ return prevLocationHistory;
56
+ }
57
+
58
+ return [...prevLocationHistory.slice(0, -2), { ...prevLocationHistory[prevLocationHistory.length - 2],
55
59
  isBack: true,
56
60
  hasRestoredFocus: false
57
- }]);
58
- }
59
- }, [locationHistory]);
61
+ }];
62
+ });
63
+ }, []);
60
64
  const navigatorContextValue = useMemo(() => ({
61
65
  location: { ...locationHistory[locationHistory.length - 1],
62
66
  isInitial: locationHistory.length === 1
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/navigator/navigator-provider/component.tsx"],"names":["css","useMemo","useState","useCallback","contextConnect","useContextSystem","useCx","View","NavigatorContext","UnconnectedNavigatorProvider","props","forwardedRef","initialPath","children","className","otherProps","locationHistory","setLocationHistory","path","goTo","options","isBack","hasRestoredFocus","goBack","length","slice","navigatorContextValue","location","isInitial","cx","classes","NavigatorProvider"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport type { ForwardedRef } from 'react';\nimport { css } from '@emotion/react';\n\n/**\n * WordPress dependencies\n */\nimport { useMemo, useState, useCallback } from '@wordpress/element';\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 {\n\tNavigatorProviderProps,\n\tNavigatorLocation,\n\tNavigatorContext as NavigatorContextType,\n} from '../types';\n\nfunction UnconnectedNavigatorProvider(\n\tprops: WordPressComponentProps< NavigatorProviderProps, 'div' >,\n\tforwardedRef: ForwardedRef< any >\n) {\n\tconst { initialPath, children, className, ...otherProps } =\n\t\tuseContextSystem( props, 'NavigatorProvider' );\n\n\tconst [ locationHistory, setLocationHistory ] = useState<\n\t\tNavigatorLocation[]\n\t>( [\n\t\t{\n\t\t\tpath: initialPath,\n\t\t},\n\t] );\n\n\tconst goTo: NavigatorContextType[ 'goTo' ] = useCallback(\n\t\t( path, options = {} ) => {\n\t\t\tsetLocationHistory( [\n\t\t\t\t...locationHistory,\n\t\t\t\t{\n\t\t\t\t\t...options,\n\t\t\t\t\tpath,\n\t\t\t\t\tisBack: false,\n\t\t\t\t\thasRestoredFocus: false,\n\t\t\t\t},\n\t\t\t] );\n\t\t},\n\t\t[ locationHistory ]\n\t);\n\n\tconst goBack: NavigatorContextType[ 'goBack' ] = useCallback( () => {\n\t\tif ( locationHistory.length > 1 ) {\n\t\t\tsetLocationHistory( [\n\t\t\t\t...locationHistory.slice( 0, -2 ),\n\t\t\t\t{\n\t\t\t\t\t...locationHistory[ locationHistory.length - 2 ],\n\t\t\t\t\tisBack: true,\n\t\t\t\t\thasRestoredFocus: false,\n\t\t\t\t},\n\t\t\t] );\n\t\t}\n\t}, [ locationHistory ] );\n\n\tconst navigatorContextValue: NavigatorContextType = useMemo(\n\t\t() => ( {\n\t\t\tlocation: {\n\t\t\t\t...locationHistory[ locationHistory.length - 1 ],\n\t\t\t\tisInitial: locationHistory.length === 1,\n\t\t\t},\n\t\t\tgoTo,\n\t\t\tgoBack,\n\t\t} ),\n\t\t[ locationHistory, goTo, goBack ]\n\t);\n\n\tconst cx = useCx();\n\tconst classes = useMemo(\n\t\t// Prevents horizontal overflow while animating screen transitions.\n\t\t() => cx( css( { overflowX: 'hidden' } ), className ),\n\t\t[ className, cx ]\n\t);\n\n\treturn (\n\t\t<View ref={ forwardedRef } className={ classes } { ...otherProps }>\n\t\t\t<NavigatorContext.Provider value={ navigatorContextValue }>\n\t\t\t\t{ children }\n\t\t\t</NavigatorContext.Provider>\n\t\t</View>\n\t);\n}\n\n/**\n * The `NavigatorProvider` component allows rendering nested views/panels/menus\n * (via the `NavigatorScreen` component and navigate between these different\n * view (via the `NavigatorButton` and `NavigatorBackButton` components or the\n * `useNavigator` 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 NavigatorProvider = contextConnect(\n\tUnconnectedNavigatorProvider,\n\t'NavigatorProvider'\n);\n\nexport default NavigatorProvider;\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/navigator/navigator-provider/component.tsx"],"names":["css","useMemo","useState","useCallback","contextConnect","useContextSystem","useCx","View","NavigatorContext","UnconnectedNavigatorProvider","props","forwardedRef","initialPath","children","className","otherProps","locationHistory","setLocationHistory","path","goTo","options","prevLocationHistory","isBack","hasRestoredFocus","goBack","length","slice","navigatorContextValue","location","isInitial","cx","classes","NavigatorProvider"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport type { ForwardedRef } from 'react';\nimport { css } from '@emotion/react';\n\n/**\n * WordPress dependencies\n */\nimport { useMemo, useState, useCallback } from '@wordpress/element';\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 {\n\tNavigatorProviderProps,\n\tNavigatorLocation,\n\tNavigatorContext as NavigatorContextType,\n} from '../types';\n\nfunction UnconnectedNavigatorProvider(\n\tprops: WordPressComponentProps< NavigatorProviderProps, 'div' >,\n\tforwardedRef: ForwardedRef< any >\n) {\n\tconst { initialPath, children, className, ...otherProps } =\n\t\tuseContextSystem( props, 'NavigatorProvider' );\n\n\tconst [ locationHistory, setLocationHistory ] = useState<\n\t\tNavigatorLocation[]\n\t>( [\n\t\t{\n\t\t\tpath: initialPath,\n\t\t},\n\t] );\n\n\tconst goTo: NavigatorContextType[ 'goTo' ] = useCallback(\n\t\t( path, options = {} ) => {\n\t\t\tsetLocationHistory( ( prevLocationHistory ) => [\n\t\t\t\t...prevLocationHistory,\n\t\t\t\t{\n\t\t\t\t\t...options,\n\t\t\t\t\tpath,\n\t\t\t\t\tisBack: false,\n\t\t\t\t\thasRestoredFocus: false,\n\t\t\t\t},\n\t\t\t] );\n\t\t},\n\t\t[]\n\t);\n\n\tconst goBack: NavigatorContextType[ 'goBack' ] = useCallback( () => {\n\t\tsetLocationHistory( ( prevLocationHistory ) => {\n\t\t\tif ( prevLocationHistory.length <= 1 ) {\n\t\t\t\treturn prevLocationHistory;\n\t\t\t}\n\t\t\treturn [\n\t\t\t\t...prevLocationHistory.slice( 0, -2 ),\n\t\t\t\t{\n\t\t\t\t\t...prevLocationHistory[ prevLocationHistory.length - 2 ],\n\t\t\t\t\tisBack: true,\n\t\t\t\t\thasRestoredFocus: false,\n\t\t\t\t},\n\t\t\t];\n\t\t} );\n\t}, [] );\n\n\tconst navigatorContextValue: NavigatorContextType = useMemo(\n\t\t() => ( {\n\t\t\tlocation: {\n\t\t\t\t...locationHistory[ locationHistory.length - 1 ],\n\t\t\t\tisInitial: locationHistory.length === 1,\n\t\t\t},\n\t\t\tgoTo,\n\t\t\tgoBack,\n\t\t} ),\n\t\t[ locationHistory, goTo, goBack ]\n\t);\n\n\tconst cx = useCx();\n\tconst classes = useMemo(\n\t\t// Prevents horizontal overflow while animating screen transitions.\n\t\t() => cx( css( { overflowX: 'hidden' } ), className ),\n\t\t[ className, cx ]\n\t);\n\n\treturn (\n\t\t<View ref={ forwardedRef } className={ classes } { ...otherProps }>\n\t\t\t<NavigatorContext.Provider value={ navigatorContextValue }>\n\t\t\t\t{ children }\n\t\t\t</NavigatorContext.Provider>\n\t\t</View>\n\t);\n}\n\n/**\n * The `NavigatorProvider` component allows rendering nested views/panels/menus\n * (via the `NavigatorScreen` component and navigate between these different\n * view (via the `NavigatorButton` and `NavigatorBackButton` components or the\n * `useNavigator` 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 NavigatorProvider = contextConnect(\n\tUnconnectedNavigatorProvider,\n\t'NavigatorProvider'\n);\n\nexport default NavigatorProvider;\n"]}