@wordpress/components 19.10.0 → 19.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (420) hide show
  1. package/CHANGELOG.md +24 -6
  2. package/build/border-box-control/border-box-control/component.js +22 -7
  3. package/build/border-box-control/border-box-control/component.js.map +1 -1
  4. package/build/border-box-control/border-box-control-linked-button/hook.js +3 -2
  5. package/build/border-box-control/border-box-control-linked-button/hook.js.map +1 -1
  6. package/build/border-box-control/border-box-control-split-controls/component.js +21 -8
  7. package/build/border-box-control/border-box-control-split-controls/component.js.map +1 -1
  8. package/build/border-box-control/border-box-control-visualizer/hook.js +3 -2
  9. package/build/border-box-control/border-box-control-visualizer/hook.js.map +1 -1
  10. package/build/border-box-control/styles.js +11 -15
  11. package/build/border-box-control/styles.js.map +1 -1
  12. package/build/border-control/border-control/component.js +5 -3
  13. package/build/border-control/border-control/component.js.map +1 -1
  14. package/build/border-control/border-control/hook.js +6 -3
  15. package/build/border-control/border-control/hook.js.map +1 -1
  16. package/build/border-control/border-control-dropdown/component.js +6 -2
  17. package/build/border-control/border-control-dropdown/component.js.map +1 -1
  18. package/build/border-control/border-control-dropdown/hook.js +5 -5
  19. package/build/border-control/border-control-dropdown/hook.js.map +1 -1
  20. package/build/border-control/styles.js +58 -29
  21. package/build/border-control/styles.js.map +1 -1
  22. package/build/button/index.native.js +16 -2
  23. package/build/button/index.native.js.map +1 -1
  24. package/build/button-group/index.js +24 -7
  25. package/build/button-group/index.js.map +1 -1
  26. package/build/{flyout → button-group}/types.js +0 -0
  27. package/build/button-group/types.js.map +1 -0
  28. package/build/checkbox-control/index.js +34 -7
  29. package/build/checkbox-control/index.js.map +1 -1
  30. package/build/checkbox-control/types.js +6 -0
  31. package/build/checkbox-control/types.js.map +1 -0
  32. package/build/color-palette/index.js +5 -12
  33. package/build/color-palette/index.js.map +1 -1
  34. package/build/date-time/date.js +43 -19
  35. package/build/date-time/date.js.map +1 -1
  36. package/build/date-time/index.js +28 -3
  37. package/build/date-time/index.js.map +1 -1
  38. package/build/date-time/time.js +42 -40
  39. package/build/date-time/time.js.map +1 -1
  40. package/build/date-time/timezone.js +4 -3
  41. package/build/date-time/timezone.js.map +1 -1
  42. package/build/date-time/types.js +6 -0
  43. package/build/date-time/types.js.map +1 -0
  44. package/build/date-time/utils.js +6 -4
  45. package/build/date-time/utils.js.map +1 -1
  46. package/build/disabled/index.js +1 -1
  47. package/build/disabled/index.js.map +1 -1
  48. package/build/draggable/index.native.js +223 -0
  49. package/build/draggable/index.native.js.map +1 -0
  50. package/build/dropdown/index.js +7 -5
  51. package/build/dropdown/index.js.map +1 -1
  52. package/build/focal-point-picker/index.native.js +3 -3
  53. package/build/focal-point-picker/index.native.js.map +1 -1
  54. package/build/index.js +0 -8
  55. package/build/index.js.map +1 -1
  56. package/build/index.native.js +16 -0
  57. package/build/index.native.js.map +1 -1
  58. package/build/mobile/bottom-sheet/bottom-sheet-navigation/navigation-screen.native.js +1 -1
  59. package/build/mobile/bottom-sheet/bottom-sheet-navigation/navigation-screen.native.js.map +1 -1
  60. package/build/mobile/bottom-sheet/index.native.js +1 -1
  61. package/build/mobile/bottom-sheet/index.native.js.map +1 -1
  62. package/build/mobile/bottom-sheet-select-control/index.native.js +3 -2
  63. package/build/mobile/bottom-sheet-select-control/index.native.js.map +1 -1
  64. package/build/mobile/html-text-input/index.native.js +19 -8
  65. package/build/mobile/html-text-input/index.native.js.map +1 -1
  66. package/build/mobile/keyboard-aware-flat-list/index.android.js +28 -5
  67. package/build/mobile/keyboard-aware-flat-list/index.android.js.map +1 -1
  68. package/build/mobile/keyboard-aware-flat-list/index.ios.js +47 -24
  69. package/build/mobile/keyboard-aware-flat-list/index.ios.js.map +1 -1
  70. package/build/palette-edit/index.js +38 -7
  71. package/build/palette-edit/index.js.map +1 -1
  72. package/build/popover/index.js +223 -277
  73. package/build/popover/index.js.map +1 -1
  74. package/build/resizable-box/resize-tooltip/utils.js +5 -8
  75. package/build/resizable-box/resize-tooltip/utils.js.map +1 -1
  76. package/build/sandbox/index.native.js +1 -1
  77. package/build/sandbox/index.native.js.map +1 -1
  78. package/build/select-control/styles/select-control-styles.js +14 -11
  79. package/build/select-control/styles/select-control-styles.js.map +1 -1
  80. package/build/toggle-group-control/toggle-group-control/component.js +1 -3
  81. package/build/toggle-group-control/toggle-group-control/component.js.map +1 -1
  82. package/build/tooltip/index.js +2 -2
  83. package/build/tooltip/index.js.map +1 -1
  84. package/build-module/border-box-control/border-box-control/component.js +22 -7
  85. package/build-module/border-box-control/border-box-control/component.js.map +1 -1
  86. package/build-module/border-box-control/border-box-control-linked-button/hook.js +3 -2
  87. package/build-module/border-box-control/border-box-control-linked-button/hook.js.map +1 -1
  88. package/build-module/border-box-control/border-box-control-split-controls/component.js +21 -8
  89. package/build-module/border-box-control/border-box-control-split-controls/component.js.map +1 -1
  90. package/build-module/border-box-control/border-box-control-visualizer/hook.js +3 -2
  91. package/build-module/border-box-control/border-box-control-visualizer/hook.js.map +1 -1
  92. package/build-module/border-box-control/styles.js +9 -15
  93. package/build-module/border-box-control/styles.js.map +1 -1
  94. package/build-module/border-control/border-control/component.js +5 -3
  95. package/build-module/border-control/border-control/component.js.map +1 -1
  96. package/build-module/border-control/border-control/hook.js +6 -3
  97. package/build-module/border-control/border-control/hook.js.map +1 -1
  98. package/build-module/border-control/border-control-dropdown/component.js +6 -2
  99. package/build-module/border-control/border-control-dropdown/component.js.map +1 -1
  100. package/build-module/border-control/border-control-dropdown/hook.js +5 -5
  101. package/build-module/border-control/border-control-dropdown/hook.js.map +1 -1
  102. package/build-module/border-control/styles.js +56 -29
  103. package/build-module/border-control/styles.js.map +1 -1
  104. package/build-module/button/index.native.js +16 -3
  105. package/build-module/button/index.native.js.map +1 -1
  106. package/build-module/button-group/index.js +27 -7
  107. package/build-module/button-group/index.js.map +1 -1
  108. package/build-module/{flyout → button-group}/types.js +0 -0
  109. package/build-module/{flyout → button-group}/types.js.map +0 -0
  110. package/build-module/checkbox-control/index.js +31 -7
  111. package/build-module/checkbox-control/index.js.map +1 -1
  112. package/build-module/checkbox-control/types.js +2 -0
  113. package/{build/flyout → build-module/checkbox-control}/types.js.map +0 -0
  114. package/build-module/color-palette/index.js +5 -11
  115. package/build-module/color-palette/index.js.map +1 -1
  116. package/build-module/date-time/date.js +44 -19
  117. package/build-module/date-time/date.js.map +1 -1
  118. package/build-module/date-time/index.js +28 -4
  119. package/build-module/date-time/index.js.map +1 -1
  120. package/build-module/date-time/time.js +43 -41
  121. package/build-module/date-time/time.js.map +1 -1
  122. package/build-module/date-time/timezone.js +4 -3
  123. package/build-module/date-time/timezone.js.map +1 -1
  124. package/build-module/date-time/types.js +2 -0
  125. package/build-module/date-time/types.js.map +1 -0
  126. package/build-module/date-time/utils.js +6 -4
  127. package/build-module/date-time/utils.js.map +1 -1
  128. package/build-module/disabled/index.js +1 -1
  129. package/build-module/disabled/index.js.map +1 -1
  130. package/build-module/draggable/index.native.js +206 -0
  131. package/build-module/draggable/index.native.js.map +1 -0
  132. package/build-module/dropdown/index.js +7 -5
  133. package/build-module/dropdown/index.js.map +1 -1
  134. package/build-module/focal-point-picker/index.native.js +3 -3
  135. package/build-module/focal-point-picker/index.native.js.map +1 -1
  136. package/build-module/index.js +0 -1
  137. package/build-module/index.js.map +1 -1
  138. package/build-module/index.native.js +2 -1
  139. package/build-module/index.native.js.map +1 -1
  140. package/build-module/mobile/bottom-sheet/bottom-sheet-navigation/navigation-screen.native.js +1 -1
  141. package/build-module/mobile/bottom-sheet/bottom-sheet-navigation/navigation-screen.native.js.map +1 -1
  142. package/build-module/mobile/bottom-sheet/index.native.js +1 -1
  143. package/build-module/mobile/bottom-sheet/index.native.js.map +1 -1
  144. package/build-module/mobile/bottom-sheet-select-control/index.native.js +3 -2
  145. package/build-module/mobile/bottom-sheet-select-control/index.native.js.map +1 -1
  146. package/build-module/mobile/html-text-input/index.native.js +20 -9
  147. package/build-module/mobile/html-text-input/index.native.js.map +1 -1
  148. package/build-module/mobile/keyboard-aware-flat-list/index.android.js +21 -5
  149. package/build-module/mobile/keyboard-aware-flat-list/index.android.js.map +1 -1
  150. package/build-module/mobile/keyboard-aware-flat-list/index.ios.js +42 -25
  151. package/build-module/mobile/keyboard-aware-flat-list/index.ios.js.map +1 -1
  152. package/build-module/palette-edit/index.js +37 -7
  153. package/build-module/palette-edit/index.js.map +1 -1
  154. package/build-module/popover/index.js +225 -279
  155. package/build-module/popover/index.js.map +1 -1
  156. package/build-module/resizable-box/resize-tooltip/utils.js +4 -5
  157. package/build-module/resizable-box/resize-tooltip/utils.js.map +1 -1
  158. package/build-module/sandbox/index.native.js +1 -1
  159. package/build-module/sandbox/index.native.js.map +1 -1
  160. package/build-module/select-control/styles/select-control-styles.js +14 -11
  161. package/build-module/select-control/styles/select-control-styles.js.map +1 -1
  162. package/build-module/toggle-group-control/toggle-group-control/component.js +2 -3
  163. package/build-module/toggle-group-control/toggle-group-control/component.js.map +1 -1
  164. package/build-module/tooltip/index.js +2 -2
  165. package/build-module/tooltip/index.js.map +1 -1
  166. package/build-style/style-rtl.css +31 -170
  167. package/build-style/style.css +27 -170
  168. package/build-types/border-box-control/border-box-control/component.d.ts.map +1 -1
  169. package/build-types/border-box-control/border-box-control/hook.d.ts +3 -1
  170. package/build-types/border-box-control/border-box-control/hook.d.ts.map +1 -1
  171. package/build-types/border-box-control/border-box-control-linked-button/hook.d.ts.map +1 -1
  172. package/build-types/border-box-control/border-box-control-split-controls/component.d.ts.map +1 -1
  173. package/build-types/border-box-control/border-box-control-split-controls/hook.d.ts +3 -1
  174. package/build-types/border-box-control/border-box-control-split-controls/hook.d.ts.map +1 -1
  175. package/build-types/border-box-control/border-box-control-visualizer/hook.d.ts.map +1 -1
  176. package/build-types/border-box-control/styles.d.ts +2 -2
  177. package/build-types/border-box-control/styles.d.ts.map +1 -1
  178. package/build-types/border-box-control/types.d.ts +40 -13
  179. package/build-types/border-box-control/types.d.ts.map +1 -1
  180. package/build-types/border-control/border-control/component.d.ts.map +1 -1
  181. package/build-types/border-control/border-control/hook.d.ts +2 -1
  182. package/build-types/border-control/border-control/hook.d.ts.map +1 -1
  183. package/build-types/border-control/border-control-dropdown/component.d.ts.map +1 -1
  184. package/build-types/border-control/border-control-dropdown/hook.d.ts +1 -0
  185. package/build-types/border-control/border-control-dropdown/hook.d.ts.map +1 -1
  186. package/build-types/border-control/styles.d.ts +2 -1
  187. package/build-types/border-control/styles.d.ts.map +1 -1
  188. package/build-types/border-control/types.d.ts +18 -6
  189. package/build-types/border-control/types.d.ts.map +1 -1
  190. package/build-types/button-group/index.d.ts +25 -0
  191. package/build-types/button-group/index.d.ts.map +1 -0
  192. package/build-types/button-group/stories/index.d.ts +12 -0
  193. package/build-types/button-group/stories/index.d.ts.map +1 -0
  194. package/build-types/button-group/types.d.ts +11 -0
  195. package/build-types/button-group/types.d.ts.map +1 -0
  196. package/build-types/checkbox-control/index.d.ts +26 -0
  197. package/build-types/checkbox-control/index.d.ts.map +1 -0
  198. package/build-types/checkbox-control/stories/index.d.ts +13 -0
  199. package/build-types/checkbox-control/stories/index.d.ts.map +1 -0
  200. package/build-types/checkbox-control/types.d.ts +35 -0
  201. package/build-types/checkbox-control/types.d.ts.map +1 -0
  202. package/build-types/color-palette/index.d.ts.map +1 -1
  203. package/build-types/color-picker/styles.d.ts +1 -1
  204. package/build-types/date-time/date.d.ts +24 -0
  205. package/build-types/date-time/date.d.ts.map +1 -0
  206. package/build-types/date-time/index.d.ts +35 -0
  207. package/build-types/date-time/index.d.ts.map +1 -0
  208. package/build-types/date-time/stories/date.d.ts +14 -0
  209. package/build-types/date-time/stories/date.d.ts.map +1 -0
  210. package/build-types/date-time/stories/index.d.ts +14 -0
  211. package/build-types/date-time/stories/index.d.ts.map +1 -0
  212. package/build-types/date-time/stories/time.d.ts +12 -0
  213. package/build-types/date-time/stories/time.d.ts.map +1 -0
  214. package/build-types/date-time/stories/utils.d.ts +3 -0
  215. package/build-types/date-time/stories/utils.d.ts.map +1 -0
  216. package/build-types/date-time/test/date.d.ts +2 -0
  217. package/build-types/date-time/test/date.d.ts.map +1 -0
  218. package/build-types/date-time/test/time.d.ts +2 -0
  219. package/build-types/date-time/test/time.d.ts.map +1 -0
  220. package/build-types/date-time/test/utils.d.ts +2 -0
  221. package/build-types/date-time/test/utils.d.ts.map +1 -0
  222. package/build-types/date-time/time.d.ts +25 -0
  223. package/build-types/date-time/time.d.ts.map +1 -0
  224. package/build-types/date-time/timezone.d.ts +8 -0
  225. package/build-types/date-time/timezone.d.ts.map +1 -0
  226. package/build-types/date-time/types.d.ts +91 -0
  227. package/build-types/date-time/types.d.ts.map +1 -0
  228. package/build-types/date-time/utils.d.ts +15 -0
  229. package/build-types/date-time/utils.d.ts.map +1 -0
  230. package/build-types/dropdown/index.d.ts.map +1 -1
  231. package/build-types/input-control/index.d.ts +1 -1
  232. package/build-types/input-control/stories/index.d.ts +5 -5
  233. package/build-types/number-control/styles/number-control-styles.d.ts +1 -1
  234. package/build-types/popover/index.d.ts +5 -7
  235. package/build-types/popover/index.d.ts.map +1 -1
  236. package/build-types/resizable-box/index.d.ts +1 -1
  237. package/build-types/resizable-box/resize-tooltip/index.d.ts +1 -1
  238. package/build-types/resizable-box/resize-tooltip/utils.d.ts.map +1 -1
  239. package/build-types/select-control/styles/select-control-styles.d.ts.map +1 -1
  240. package/build-types/toggle-group-control/toggle-group-control/component.d.ts.map +1 -1
  241. package/build-types/tooltip/index.d.ts.map +1 -1
  242. package/package.json +19 -19
  243. package/src/autocomplete/style.scss +1 -1
  244. package/src/border-box-control/border-box-control/README.md +10 -14
  245. package/src/border-box-control/border-box-control/component.tsx +21 -4
  246. package/src/border-box-control/border-box-control-linked-button/hook.ts +10 -6
  247. package/src/border-box-control/border-box-control-split-controls/component.tsx +24 -7
  248. package/src/border-box-control/border-box-control-visualizer/hook.ts +11 -6
  249. package/src/border-box-control/stories/index.js +1 -0
  250. package/src/border-box-control/styles.ts +15 -8
  251. package/src/border-box-control/types.ts +40 -14
  252. package/src/border-control/border-control/README.md +0 -7
  253. package/src/border-control/border-control/component.tsx +4 -2
  254. package/src/border-control/border-control/hook.ts +5 -2
  255. package/src/border-control/border-control-dropdown/component.tsx +18 -11
  256. package/src/border-control/border-control-dropdown/hook.ts +7 -5
  257. package/src/border-control/stories/index.js +1 -0
  258. package/src/border-control/styles.ts +82 -22
  259. package/src/border-control/types.ts +18 -6
  260. package/src/button/index.native.js +33 -18
  261. package/src/button-group/index.tsx +47 -0
  262. package/src/button-group/stories/index.tsx +41 -0
  263. package/src/button-group/types.ts +11 -0
  264. package/src/checkbox-control/README.md +10 -8
  265. package/src/checkbox-control/{index.js → index.tsx} +49 -14
  266. package/src/checkbox-control/stories/{index.js → index.tsx} +49 -27
  267. package/src/checkbox-control/types.ts +36 -0
  268. package/src/circular-option-picker/style.scss +1 -0
  269. package/src/color-palette/index.js +6 -13
  270. package/src/color-palette/style.scss +3 -18
  271. package/src/date-time/README.md +13 -10
  272. package/src/date-time/{date.js → date.tsx} +49 -20
  273. package/src/date-time/{index.js → index.tsx} +31 -5
  274. package/src/date-time/stories/date.tsx +73 -0
  275. package/src/date-time/stories/index.tsx +75 -0
  276. package/src/date-time/stories/time.tsx +51 -0
  277. package/src/date-time/stories/utils.ts +9 -0
  278. package/src/date-time/test/{date.js → date.tsx} +3 -2
  279. package/src/date-time/test/{time.js → time.tsx} +34 -19
  280. package/src/date-time/test/{utils.js → utils.ts} +1 -1
  281. package/src/date-time/{time.js → time.tsx} +57 -46
  282. package/src/date-time/{timezone.js → timezone.tsx} +4 -3
  283. package/src/date-time/types.ts +106 -0
  284. package/src/date-time/utils.ts +20 -0
  285. package/src/disabled/index.js +1 -1
  286. package/src/draggable/index.native.js +215 -0
  287. package/src/draggable/style.native.scss +3 -0
  288. package/src/dropdown/index.js +9 -4
  289. package/src/dropdown/style.scss +1 -1
  290. package/src/focal-point-picker/index.native.js +3 -3
  291. package/src/form-file-upload/test/index.js +8 -4
  292. package/src/index.js +0 -1
  293. package/src/index.native.js +1 -0
  294. package/src/item-group/stories/index.js +22 -18
  295. package/src/mobile/bottom-sheet/bottom-sheet-navigation/navigation-screen.native.js +1 -1
  296. package/src/mobile/bottom-sheet/bottom-sheet-navigation/test/navigation-container.native.js +1 -1
  297. package/src/mobile/bottom-sheet/index.native.js +1 -1
  298. package/src/mobile/bottom-sheet-select-control/index.native.js +7 -2
  299. package/src/mobile/html-text-input/index.native.js +45 -29
  300. package/src/mobile/html-text-input/style.android.scss +1 -15
  301. package/src/mobile/html-text-input/style.ios.scss +1 -15
  302. package/src/mobile/html-text-input/{style-common.native.scss → style.scss} +16 -0
  303. package/src/mobile/keyboard-aware-flat-list/index.android.js +15 -5
  304. package/src/mobile/keyboard-aware-flat-list/index.ios.js +75 -46
  305. package/src/navigator/stories/index.js +16 -10
  306. package/src/palette-edit/index.js +37 -9
  307. package/src/palette-edit/style.scss +0 -7
  308. package/src/palette-edit/test/index.js +63 -0
  309. package/src/panel/README.md +1 -1
  310. package/src/placeholder/test/index.js +7 -0
  311. package/src/popover/README.md +7 -9
  312. package/src/popover/index.js +242 -371
  313. package/src/popover/style.scss +20 -190
  314. package/src/popover/test/__snapshots__/index.js.snap +6 -18
  315. package/src/resizable-box/resize-tooltip/utils.ts +4 -5
  316. package/src/sandbox/index.native.js +1 -1
  317. package/src/select-control/styles/select-control-styles.ts +6 -3
  318. package/src/tab-panel/style.scss +1 -1
  319. package/src/toggle-group-control/test/__snapshots__/index.js.snap +4 -10
  320. package/src/toggle-group-control/toggle-group-control/component.tsx +7 -3
  321. package/src/tooltip/index.js +8 -2
  322. package/src/tooltip/style.scss +2 -4
  323. package/src/tooltip/test/index.native.js +1 -1
  324. package/src/unit-control/test/index.tsx +84 -4
  325. package/tsconfig.json +6 -2
  326. package/tsconfig.tsbuildinfo +1 -1
  327. package/build/flyout/context.js +0 -23
  328. package/build/flyout/context.js.map +0 -1
  329. package/build/flyout/flyout/component.js +0 -106
  330. package/build/flyout/flyout/component.js.map +0 -1
  331. package/build/flyout/flyout/hook.js +0 -53
  332. package/build/flyout/flyout/hook.js.map +0 -1
  333. package/build/flyout/flyout/index.js +0 -24
  334. package/build/flyout/flyout/index.js.map +0 -1
  335. package/build/flyout/flyout-content/component.js +0 -65
  336. package/build/flyout/flyout-content/component.js.map +0 -1
  337. package/build/flyout/flyout-content/index.js +0 -16
  338. package/build/flyout/flyout-content/index.js.map +0 -1
  339. package/build/flyout/index.js +0 -16
  340. package/build/flyout/index.js.map +0 -1
  341. package/build/flyout/styles.js +0 -46
  342. package/build/flyout/styles.js.map +0 -1
  343. package/build/flyout/utils.js +0 -36
  344. package/build/flyout/utils.js.map +0 -1
  345. package/build/mobile/html-text-input/container.android.js +0 -41
  346. package/build/mobile/html-text-input/container.android.js.map +0 -1
  347. package/build/mobile/html-text-input/container.ios.js +0 -60
  348. package/build/mobile/html-text-input/container.ios.js.map +0 -1
  349. package/build/popover/utils.js +0 -322
  350. package/build/popover/utils.js.map +0 -1
  351. package/build-module/flyout/context.js +0 -11
  352. package/build-module/flyout/context.js.map +0 -1
  353. package/build-module/flyout/flyout/component.js +0 -89
  354. package/build-module/flyout/flyout/component.js.map +0 -1
  355. package/build-module/flyout/flyout/hook.js +0 -44
  356. package/build-module/flyout/flyout/hook.js.map +0 -1
  357. package/build-module/flyout/flyout/index.js +0 -3
  358. package/build-module/flyout/flyout/index.js.map +0 -1
  359. package/build-module/flyout/flyout-content/component.js +0 -51
  360. package/build-module/flyout/flyout-content/component.js.map +0 -1
  361. package/build-module/flyout/flyout-content/index.js +0 -2
  362. package/build-module/flyout/flyout-content/index.js.map +0 -1
  363. package/build-module/flyout/index.js +0 -2
  364. package/build-module/flyout/index.js.map +0 -1
  365. package/build-module/flyout/styles.js +0 -27
  366. package/build-module/flyout/styles.js.map +0 -1
  367. package/build-module/flyout/utils.js +0 -25
  368. package/build-module/flyout/utils.js.map +0 -1
  369. package/build-module/mobile/html-text-input/container.android.js +0 -29
  370. package/build-module/mobile/html-text-input/container.android.js.map +0 -1
  371. package/build-module/mobile/html-text-input/container.ios.js +0 -48
  372. package/build-module/mobile/html-text-input/container.ios.js.map +0 -1
  373. package/build-module/popover/utils.js +0 -308
  374. package/build-module/popover/utils.js.map +0 -1
  375. package/build-types/flyout/context.d.ts +0 -6
  376. package/build-types/flyout/context.d.ts.map +0 -1
  377. package/build-types/flyout/flyout/component.d.ts +0 -21
  378. package/build-types/flyout/flyout/component.d.ts.map +0 -1
  379. package/build-types/flyout/flyout/hook.d.ts +0 -270
  380. package/build-types/flyout/flyout/hook.d.ts.map +0 -1
  381. package/build-types/flyout/flyout/index.d.ts +0 -3
  382. package/build-types/flyout/flyout/index.d.ts.map +0 -1
  383. package/build-types/flyout/flyout-content/component.d.ts +0 -3
  384. package/build-types/flyout/flyout-content/component.d.ts.map +0 -1
  385. package/build-types/flyout/flyout-content/index.d.ts +0 -2
  386. package/build-types/flyout/flyout-content/index.d.ts.map +0 -1
  387. package/build-types/flyout/index.d.ts +0 -2
  388. package/build-types/flyout/index.d.ts.map +0 -1
  389. package/build-types/flyout/styles.d.ts +0 -22
  390. package/build-types/flyout/styles.d.ts.map +0 -1
  391. package/build-types/flyout/types.d.ts +0 -80
  392. package/build-types/flyout/types.d.ts.map +0 -1
  393. package/build-types/flyout/utils.d.ts +0 -8
  394. package/build-types/flyout/utils.d.ts.map +0 -1
  395. package/build-types/popover/utils.d.ts +0 -70
  396. package/build-types/popover/utils.d.ts.map +0 -1
  397. package/src/button-group/index.js +0 -17
  398. package/src/button-group/stories/index.js +0 -21
  399. package/src/date-time/stories/date.js +0 -17
  400. package/src/date-time/stories/index.js +0 -91
  401. package/src/date-time/stories/time.js +0 -32
  402. package/src/date-time/utils.js +0 -18
  403. package/src/flyout/context.js +0 -10
  404. package/src/flyout/flyout/README.md +0 -98
  405. package/src/flyout/flyout/component.js +0 -111
  406. package/src/flyout/flyout/hook.js +0 -45
  407. package/src/flyout/flyout/index.js +0 -2
  408. package/src/flyout/flyout-content/component.js +0 -53
  409. package/src/flyout/flyout-content/index.js +0 -1
  410. package/src/flyout/index.js +0 -1
  411. package/src/flyout/stories/index.js +0 -24
  412. package/src/flyout/styles.ts +0 -41
  413. package/src/flyout/test/__snapshots__/index.js.snap +0 -186
  414. package/src/flyout/test/index.js +0 -103
  415. package/src/flyout/types.ts +0 -84
  416. package/src/flyout/utils.js +0 -23
  417. package/src/mobile/html-text-input/container.android.js +0 -23
  418. package/src/mobile/html-text-input/container.ios.js +0 -50
  419. package/src/popover/test/utils.js +0 -304
  420. package/src/popover/utils.js +0 -396
@@ -3,10 +3,17 @@
3
3
  */
4
4
  import moment from 'moment';
5
5
  import classnames from 'classnames';
6
-
7
- // react-dates doesn't tree-shake correctly, so we import from the individual
8
- // component here, to avoid including too much of the library
9
- import DayPickerSingleDateController from 'react-dates/lib/components/DayPickerSingleDateController';
6
+ import type { Moment } from 'moment';
7
+ import { noop } from 'lodash';
8
+
9
+ // `react-dates` doesn't tree-shake correctly, so we import from the individual
10
+ // component here.
11
+ // @ts-expect-error TypeScript won't find any type declarations at
12
+ // `react-dates/lib/components/DayPickerSingleDateController` as they're located
13
+ // at `react-dates`.
14
+ import UntypedDayPickerSingleDateController from 'react-dates/lib/components/DayPickerSingleDateController';
15
+ import type { DayPickerSingleDateController } from 'react-dates';
16
+ const TypedDayPickerSingleDateController = UntypedDayPickerSingleDateController as DayPickerSingleDateController;
10
17
 
11
18
  /**
12
19
  * WordPress dependencies
@@ -18,15 +25,13 @@ import { isRTL, _n, sprintf } from '@wordpress/i18n';
18
25
  * Internal dependencies
19
26
  */
20
27
  import { getMomentDate } from './utils';
28
+ import type { DatePickerDayProps, DatePickerProps } from './types';
21
29
 
22
- /**
23
- * Module Constants
24
- */
25
30
  const TIMEZONELESS_FORMAT = 'YYYY-MM-DDTHH:mm:ss';
26
31
  const ARIAL_LABEL_TIME_FORMAT = 'dddd, LL';
27
32
 
28
- function DatePickerDay( { day, events = [] } ) {
29
- const ref = useRef();
33
+ function DatePickerDay( { day, events = [] }: DatePickerDayProps ) {
34
+ const ref = useRef< HTMLDivElement >( null );
30
35
 
31
36
  /*
32
37
  * a11y hack to make the `There is/are n events` string
@@ -36,7 +41,7 @@ function DatePickerDay( { day, events = [] } ) {
36
41
  */
37
42
  useEffect( () => {
38
43
  // Bail when no parent node.
39
- if ( ! ref?.current?.parentNode ) {
44
+ if ( ! ( ref?.current?.parentNode instanceof Element ) ) {
40
45
  return;
41
46
  }
42
47
 
@@ -75,15 +80,34 @@ function DatePickerDay( { day, events = [] } ) {
75
80
  );
76
81
  }
77
82
 
78
- function DatePicker( {
83
+ /**
84
+ * DatePicker is a React component that renders a calendar for date selection.
85
+ *
86
+ * ```jsx
87
+ * import { DatePicker } from '@wordpress/components';
88
+ * import { useState } from '@wordpress/element';
89
+ *
90
+ * const MyDatePicker = () => {
91
+ * const [ date, setDate ] = useState( new Date() );
92
+ *
93
+ * return (
94
+ * <DatePicker
95
+ * currentDate={ date }
96
+ * onChange={ ( newDate ) => setDate( newDate ) }
97
+ * />
98
+ * );
99
+ * };
100
+ * ```
101
+ */
102
+ export function DatePicker( {
79
103
  currentDate,
80
104
  onChange,
81
105
  events,
82
106
  isInvalidDate,
83
107
  onMonthPreviewed,
84
- } ) {
85
- const nodeRef = useRef();
86
- const onMonthPreviewedHandler = ( newMonthDate ) => {
108
+ }: DatePickerProps ) {
109
+ const nodeRef = useRef< HTMLDivElement >( null );
110
+ const onMonthPreviewedHandler = ( newMonthDate: Moment ) => {
87
111
  onMonthPreviewed?.( newMonthDate.toISOString() );
88
112
  keepFocusInside();
89
113
  };
@@ -111,7 +135,7 @@ function DatePicker( {
111
135
  const focusRegion = nodeRef.current.querySelector(
112
136
  '.DayPicker_focusRegion'
113
137
  );
114
- if ( ! focusRegion ) {
138
+ if ( ! ( focusRegion instanceof HTMLElement ) ) {
115
139
  return;
116
140
  }
117
141
  // Keep the focus on focus region.
@@ -119,7 +143,11 @@ function DatePicker( {
119
143
  }
120
144
  };
121
145
 
122
- const onChangeMoment = ( newDate ) => {
146
+ const onChangeMoment = ( newDate: Moment | null ) => {
147
+ if ( ! newDate ) {
148
+ return;
149
+ }
150
+
123
151
  // If currentDate is null, use now as momentTime to designate hours, minutes, seconds.
124
152
  const momentDate = currentDate ? moment( currentDate ) : moment();
125
153
  const momentTime = {
@@ -128,13 +156,13 @@ function DatePicker( {
128
156
  seconds: 0,
129
157
  };
130
158
 
131
- onChange( newDate.set( momentTime ).format( TIMEZONELESS_FORMAT ) );
159
+ onChange?.( newDate.set( momentTime ).format( TIMEZONELESS_FORMAT ) );
132
160
 
133
161
  // Keep focus on the date picker.
134
162
  keepFocusInside();
135
163
  };
136
164
 
137
- const getEventsPerDay = ( day ) => {
165
+ const getEventsPerDay = ( day: Moment ) => {
138
166
  if ( ! events?.length ) {
139
167
  return [];
140
168
  }
@@ -148,7 +176,7 @@ function DatePicker( {
148
176
 
149
177
  return (
150
178
  <div className="components-datetime__date" ref={ nodeRef }>
151
- <DayPickerSingleDateController
179
+ <TypedDayPickerSingleDateController
152
180
  date={ momentDate }
153
181
  daySize={ 30 }
154
182
  focused
@@ -166,7 +194,7 @@ function DatePicker( {
166
194
  dayAriaLabelFormat={ ARIAL_LABEL_TIME_FORMAT }
167
195
  isRTL={ isRTL() }
168
196
  isOutsideRange={ ( date ) => {
169
- return isInvalidDate && isInvalidDate( date.toDate() );
197
+ return !! isInvalidDate && isInvalidDate( date.toDate() );
170
198
  } }
171
199
  onPrevMonthClick={ onMonthPreviewedHandler }
172
200
  onNextMonthClick={ onMonthPreviewedHandler }
@@ -176,6 +204,7 @@ function DatePicker( {
176
204
  events={ getEventsPerDay( day ) }
177
205
  />
178
206
  ) }
207
+ onFocusChange={ noop }
179
208
  />
180
209
  </div>
181
210
  );
@@ -5,6 +5,7 @@
5
5
  // See: https://github.com/airbnb/react-dates#initialize
6
6
  import 'react-dates/initialize';
7
7
  import { noop } from 'lodash';
8
+ import type { ForwardedRef } from 'react';
8
9
 
9
10
  /**
10
11
  * WordPress dependencies
@@ -18,10 +19,11 @@ import { __, _x } from '@wordpress/i18n';
18
19
  import Button from '../button';
19
20
  import { default as DatePicker } from './date';
20
21
  import { default as TimePicker } from './time';
22
+ import type { DateTimePickerProps } from './types';
21
23
 
22
24
  export { DatePicker, TimePicker };
23
25
 
24
- function DateTimePicker(
26
+ function UnforwardedDateTimePicker(
25
27
  {
26
28
  currentDate,
27
29
  is12Hour,
@@ -29,8 +31,8 @@ function DateTimePicker(
29
31
  onMonthPreviewed = noop,
30
32
  onChange,
31
33
  events,
32
- },
33
- ref
34
+ }: DateTimePickerProps,
35
+ ref: ForwardedRef< any >
34
36
  ) {
35
37
  const [ calendarHelpIsVisible, setCalendarHelpIsVisible ] = useState(
36
38
  false
@@ -148,7 +150,7 @@ function DateTimePicker(
148
150
  <Button
149
151
  className="components-datetime__date-reset-button"
150
152
  variant="link"
151
- onClick={ () => onChange( null ) }
153
+ onClick={ () => onChange?.( null ) }
152
154
  >
153
155
  { __( 'Reset' ) }
154
156
  </Button>
@@ -167,4 +169,28 @@ function DateTimePicker(
167
169
  );
168
170
  }
169
171
 
170
- export default forwardRef( DateTimePicker );
172
+ /**
173
+ * DateTimePicker is a React component that renders a calendar and clock for
174
+ * date and time selection. The calendar and clock components can be accessed
175
+ * individually using the `DatePicker` and `TimePicker` components respectively.
176
+ *
177
+ * ```jsx
178
+ * import { DateTimePicker } from '@wordpress/components';
179
+ * import { useState } from '@wordpress/element';
180
+ *
181
+ * const MyDateTimePicker = () => {
182
+ * const [ date, setDate ] = useState( new Date() );
183
+ *
184
+ * return (
185
+ * <DateTimePicker
186
+ * currentDate={ date }
187
+ * onChange={ ( newDate ) => setDate( newDate ) }
188
+ * is12Hour
189
+ * />
190
+ * );
191
+ * };
192
+ * ```
193
+ */
194
+ export const DateTimePicker = forwardRef( UnforwardedDateTimePicker );
195
+
196
+ export default DateTimePicker;
@@ -0,0 +1,73 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import type { ComponentMeta, ComponentStory } from '@storybook/react';
5
+
6
+ /**
7
+ * WordPress dependencies
8
+ */
9
+ import { useState, useEffect } from '@wordpress/element';
10
+
11
+ /**
12
+ * Internal dependencies
13
+ */
14
+ import DatePicker from '../date';
15
+ import { daysFromNow, isWeekend } from './utils';
16
+
17
+ const meta: ComponentMeta< typeof DatePicker > = {
18
+ title: 'Components/DatePicker',
19
+ component: DatePicker,
20
+ argTypes: {
21
+ currentDate: { control: 'date' },
22
+ onChange: { action: 'onChange', control: { type: null } },
23
+ },
24
+ parameters: {
25
+ controls: { expanded: true },
26
+ docs: { source: { state: 'open' } },
27
+ },
28
+ };
29
+ export default meta;
30
+
31
+ const Template: ComponentStory< typeof DatePicker > = ( {
32
+ currentDate,
33
+ onChange,
34
+ ...args
35
+ } ) => {
36
+ const [ date, setDate ] = useState( currentDate );
37
+ useEffect( () => {
38
+ setDate( currentDate );
39
+ }, [ currentDate ] );
40
+ return (
41
+ <DatePicker
42
+ { ...args }
43
+ currentDate={ date }
44
+ onChange={ ( newDate ) => {
45
+ setDate( newDate );
46
+ onChange?.( newDate );
47
+ } }
48
+ />
49
+ );
50
+ };
51
+
52
+ export const Default: ComponentStory< typeof DatePicker > = Template.bind( {} );
53
+
54
+ export const WithEvents: ComponentStory< typeof DatePicker > = Template.bind(
55
+ {}
56
+ );
57
+ WithEvents.args = {
58
+ currentDate: new Date(),
59
+ events: [
60
+ { date: daysFromNow( 2 ) },
61
+ { date: daysFromNow( 4 ) },
62
+ { date: daysFromNow( 6 ) },
63
+ { date: daysFromNow( 8 ) },
64
+ ],
65
+ };
66
+
67
+ export const WithInvalidDates: ComponentStory<
68
+ typeof DatePicker
69
+ > = Template.bind( {} );
70
+ WithInvalidDates.args = {
71
+ currentDate: new Date(),
72
+ isInvalidDate: isWeekend,
73
+ };
@@ -0,0 +1,75 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import type { ComponentMeta, ComponentStory } from '@storybook/react';
5
+
6
+ /**
7
+ * WordPress dependencies
8
+ */
9
+ import { useState, useEffect } from '@wordpress/element';
10
+
11
+ /**
12
+ * Internal dependencies
13
+ */
14
+ import DateTimePicker from '..';
15
+ import { daysFromNow, isWeekend } from './utils';
16
+
17
+ const meta: ComponentMeta< typeof DateTimePicker > = {
18
+ title: 'Components/DateTimePicker',
19
+ component: DateTimePicker,
20
+ argTypes: {
21
+ currentDate: { control: 'date' },
22
+ onChange: { action: 'onChange', control: { type: null } },
23
+ },
24
+ parameters: {
25
+ controls: { expanded: true },
26
+ docs: { source: { state: 'open' } },
27
+ },
28
+ };
29
+ export default meta;
30
+
31
+ const Template: ComponentStory< typeof DateTimePicker > = ( {
32
+ currentDate,
33
+ onChange,
34
+ ...args
35
+ } ) => {
36
+ const [ date, setDate ] = useState( currentDate );
37
+ useEffect( () => {
38
+ setDate( currentDate );
39
+ }, [ currentDate ] );
40
+ return (
41
+ <DateTimePicker
42
+ { ...args }
43
+ currentDate={ date }
44
+ onChange={ ( newDate ) => {
45
+ setDate( newDate );
46
+ onChange?.( newDate );
47
+ } }
48
+ />
49
+ );
50
+ };
51
+
52
+ export const Default: ComponentStory< typeof DateTimePicker > = Template.bind(
53
+ {}
54
+ );
55
+
56
+ export const WithEvents: ComponentStory<
57
+ typeof DateTimePicker
58
+ > = Template.bind( {} );
59
+ WithEvents.args = {
60
+ currentDate: new Date(),
61
+ events: [
62
+ { date: daysFromNow( 2 ) },
63
+ { date: daysFromNow( 4 ) },
64
+ { date: daysFromNow( 6 ) },
65
+ { date: daysFromNow( 8 ) },
66
+ ],
67
+ };
68
+
69
+ export const WithInvalidDates: ComponentStory<
70
+ typeof DateTimePicker
71
+ > = Template.bind( {} );
72
+ WithInvalidDates.args = {
73
+ currentDate: new Date(),
74
+ isInvalidDate: isWeekend,
75
+ };
@@ -0,0 +1,51 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import type { ComponentMeta, ComponentStory } from '@storybook/react';
5
+
6
+ /**
7
+ * WordPress dependencies
8
+ */
9
+ import { useState, useEffect } from '@wordpress/element';
10
+
11
+ /**
12
+ * Internal dependencies
13
+ */
14
+ import TimePicker from '../time';
15
+
16
+ const meta: ComponentMeta< typeof TimePicker > = {
17
+ title: 'Components/TimePicker',
18
+ component: TimePicker,
19
+ argTypes: {
20
+ currentTime: { control: 'date' },
21
+ onChange: { action: 'onChange', control: { type: null } },
22
+ },
23
+ parameters: {
24
+ controls: { expanded: true },
25
+ docs: { source: { state: 'open' } },
26
+ },
27
+ };
28
+ export default meta;
29
+
30
+ const Template: ComponentStory< typeof TimePicker > = ( {
31
+ currentTime,
32
+ onChange,
33
+ ...args
34
+ } ) => {
35
+ const [ time, setTime ] = useState( currentTime );
36
+ useEffect( () => {
37
+ setTime( currentTime );
38
+ }, [ currentTime ] );
39
+ return (
40
+ <TimePicker
41
+ { ...args }
42
+ currentTime={ time }
43
+ onChange={ ( newTime ) => {
44
+ setTime( newTime );
45
+ onChange?.( newTime );
46
+ } }
47
+ />
48
+ );
49
+ };
50
+
51
+ export const Default: ComponentStory< typeof TimePicker > = Template.bind( {} );
@@ -0,0 +1,9 @@
1
+ export function daysFromNow( days: number ) {
2
+ const date = new Date();
3
+ date.setDate( date.getDate() + days );
4
+ return date;
5
+ }
6
+
7
+ export function isWeekend( date: Date ) {
8
+ return date.getDay() === 0 || date.getDay() === 6;
9
+ }
@@ -19,8 +19,9 @@ describe( 'DatePicker', () => {
19
19
  screen.getByRole( 'button', { name: 'Monday, May 2, 2022' } )
20
20
  ).toHaveClass( 'CalendarDay__selected' );
21
21
 
22
- // Expect React deprecation warning due to outdated 'react-dates' package.
23
- // TODO: Update 'react-dates'.
22
+ // Expect React deprecation warning due to 'react-dates' using outdated
23
+ // React lifecycle methods.
24
+ // https://github.com/react-dates/react-dates/issues/1748
24
25
  expect( console ).toHaveWarned();
25
26
  } );
26
27
 
@@ -237,11 +237,21 @@ describe( 'TimePicker', () => {
237
237
  />
238
238
  );
239
239
 
240
- expect( screen.getByLabelText( 'Month' ).value ).toBe( '07' );
241
- expect( screen.getByLabelText( 'Day' ).value ).toBe( '13' );
242
- expect( screen.getByLabelText( 'Year' ).value ).toBe( '2020' );
243
- expect( screen.getByLabelText( 'Hours' ).value ).toBe( '06' );
244
- expect( screen.getByLabelText( 'Minutes' ).value ).toBe( '00' );
240
+ expect(
241
+ ( screen.getByLabelText( 'Month' ) as HTMLInputElement ).value
242
+ ).toBe( '07' );
243
+ expect(
244
+ ( screen.getByLabelText( 'Day' ) as HTMLInputElement ).value
245
+ ).toBe( '13' );
246
+ expect(
247
+ ( screen.getByLabelText( 'Year' ) as HTMLInputElement ).value
248
+ ).toBe( '2020' );
249
+ expect(
250
+ ( screen.getByLabelText( 'Hours' ) as HTMLInputElement ).value
251
+ ).toBe( '06' );
252
+ expect(
253
+ ( screen.getByLabelText( 'Minutes' ) as HTMLInputElement ).value
254
+ ).toBe( '00' );
245
255
  /**
246
256
  * This is not ideal, but best of we can do for now until we refactor
247
257
  * AM/PM into accessible elements, like radio buttons.
@@ -267,14 +277,12 @@ describe( 'TimePicker', () => {
267
277
  </form>
268
278
  );
269
279
 
270
- const form = screen.getByRole( 'form' );
280
+ const form = screen.getByRole( 'form' ) as HTMLFormElement;
271
281
 
272
- let monthInputIndex = [].indexOf.call(
273
- form.elements,
282
+ let monthInputIndex = Array.from( form.elements ).indexOf(
274
283
  screen.getByLabelText( 'Month' )
275
284
  );
276
- let dayInputIndex = [].indexOf.call(
277
- form.elements,
285
+ let dayInputIndex = Array.from( form.elements ).indexOf(
278
286
  screen.getByLabelText( 'Day' )
279
287
  );
280
288
 
@@ -290,12 +298,10 @@ describe( 'TimePicker', () => {
290
298
  </form>
291
299
  );
292
300
 
293
- monthInputIndex = [].indexOf.call(
294
- form.elements,
301
+ monthInputIndex = Array.from( form.elements ).indexOf(
295
302
  screen.getByLabelText( 'Month' )
296
303
  );
297
- dayInputIndex = [].indexOf.call(
298
- form.elements,
304
+ dayInputIndex = Array.from( form.elements ).indexOf(
299
305
  screen.getByLabelText( 'Day' )
300
306
  );
301
307
 
@@ -313,11 +319,20 @@ describe( 'TimePicker', () => {
313
319
  />
314
320
  );
315
321
 
316
- const monthInput = screen.getByLabelText( 'Month' ).value;
317
- const dayInput = screen.getByLabelText( 'Day' ).value;
318
- const yearInput = screen.getByLabelText( 'Year' ).value;
319
- const hoursInput = screen.getByLabelText( 'Hours' ).value;
320
- const minutesInput = screen.getByLabelText( 'Minutes' ).value;
322
+ const monthInput = ( screen.getByLabelText(
323
+ 'Month'
324
+ ) as HTMLInputElement ).value;
325
+ const dayInput = ( screen.getByLabelText( 'Day' ) as HTMLInputElement )
326
+ .value;
327
+ const yearInput = ( screen.getByLabelText(
328
+ 'Year'
329
+ ) as HTMLInputElement ).value;
330
+ const hoursInput = ( screen.getByLabelText(
331
+ 'Hours'
332
+ ) as HTMLInputElement ).value;
333
+ const minutesInput = ( screen.getByLabelText(
334
+ 'Minutes'
335
+ ) as HTMLInputElement ).value;
321
336
 
322
337
  expect( Number.isNaN( parseInt( monthInput, 10 ) ) ).toBe( false );
323
338
  expect( Number.isNaN( parseInt( dayInput, 10 ) ) ).toBe( false );
@@ -14,7 +14,7 @@ describe( 'getMomentDate', () => {
14
14
  const momentDate = getMomentDate( currentDate );
15
15
 
16
16
  expect( moment.isMoment( momentDate ) ).toBe( true );
17
- expect( momentDate.isSame( moment( currentDate ) ) ).toBe( true );
17
+ expect( momentDate?.isSame( moment( currentDate ) ) ).toBe( true );
18
18
  } );
19
19
 
20
20
  it( 'should return null when given a null argument', () => {