@wordpress/components 19.11.0 → 19.12.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 (385) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/README.md +1 -1
  3. package/build/alignment-matrix-control/index.js +5 -2
  4. package/build/alignment-matrix-control/index.js.map +1 -1
  5. package/build/autocomplete/autocompleter-ui.js +1 -1
  6. package/build/autocomplete/autocompleter-ui.js.map +1 -1
  7. package/build/autocomplete/autocompleter-ui.native.js +2 -2
  8. package/build/autocomplete/autocompleter-ui.native.js.map +1 -1
  9. package/build/autocomplete/index.js +12 -10
  10. package/build/autocomplete/index.js.map +1 -1
  11. package/build/border-box-control/border-box-control/hook.js +2 -2
  12. package/build/border-box-control/border-box-control/hook.js.map +1 -1
  13. package/build/border-box-control/border-box-control-split-controls/component.js +2 -0
  14. package/build/border-box-control/border-box-control-split-controls/component.js.map +1 -1
  15. package/build/border-box-control/border-box-control-split-controls/hook.js +13 -4
  16. package/build/border-box-control/border-box-control-split-controls/hook.js.map +1 -1
  17. package/build/border-box-control/border-box-control-visualizer/hook.js +6 -2
  18. package/build/border-box-control/border-box-control-visualizer/hook.js.map +1 -1
  19. package/build/border-box-control/styles.js +21 -11
  20. package/build/border-box-control/styles.js.map +1 -1
  21. package/build/border-control/border-control/hook.js +2 -2
  22. package/build/border-control/border-control/hook.js.map +1 -1
  23. package/build/color-palette/index.js +9 -2
  24. package/build/color-palette/index.js.map +1 -1
  25. package/build/color-palette/index.native.js +4 -1
  26. package/build/color-palette/index.native.js.map +1 -1
  27. package/build/color-picker/color-copy-button.js +87 -0
  28. package/build/color-picker/color-copy-button.js.map +1 -0
  29. package/build/color-picker/component.js +5 -15
  30. package/build/color-picker/component.js.map +1 -1
  31. package/build/color-picker/hex-input.js +18 -1
  32. package/build/color-picker/hex-input.js.map +1 -1
  33. package/build/color-picker/styles.js +11 -11
  34. package/build/color-picker/styles.js.map +1 -1
  35. package/build/custom-gradient-picker/utils.js +1 -1
  36. package/build/custom-gradient-picker/utils.js.map +1 -1
  37. package/build/date-time/{date.js → date/index.js} +51 -12
  38. package/build/date-time/date/index.js.map +1 -0
  39. package/build/date-time/date/styles.js +70 -0
  40. package/build/date-time/date/styles.js.map +1 -0
  41. package/build/date-time/{utils.js → date/utils.js} +0 -0
  42. package/build/date-time/date/utils.js.map +1 -0
  43. package/build/date-time/date-time/index.js +175 -0
  44. package/build/date-time/date-time/index.js.map +1 -0
  45. package/build/date-time/date-time/styles.js +32 -0
  46. package/build/date-time/date-time/styles.js.map +1 -0
  47. package/build/date-time/index.js +2 -109
  48. package/build/date-time/index.js.map +1 -1
  49. package/build/date-time/time/index.js +322 -0
  50. package/build/date-time/time/index.js.map +1 -0
  51. package/build/date-time/time/styles.js +139 -0
  52. package/build/date-time/time/styles.js.map +1 -0
  53. package/build/date-time/{timezone.js → time/timezone.js} +4 -2
  54. package/build/date-time/time/timezone.js.map +1 -0
  55. package/build/draggable/index.native.js +10 -5
  56. package/build/draggable/index.native.js.map +1 -1
  57. package/build/dropdown/index.js +4 -1
  58. package/build/dropdown/index.js.map +1 -1
  59. package/build/input-control/index.js +9 -4
  60. package/build/input-control/index.js.map +1 -1
  61. package/build/input-control/input-field.js +1 -26
  62. package/build/input-control/input-field.js.map +1 -1
  63. package/build/input-control/reducer/reducer.js +36 -24
  64. package/build/input-control/reducer/reducer.js.map +1 -1
  65. package/build/input-control/reducer/state.js +0 -1
  66. package/build/input-control/reducer/state.js.map +1 -1
  67. package/build/input-control/utils.js +45 -0
  68. package/build/input-control/utils.js.map +1 -1
  69. package/build/popover/index.js +40 -33
  70. package/build/popover/index.js.map +1 -1
  71. package/build/search-control/index.js +4 -6
  72. package/build/search-control/index.js.map +1 -1
  73. package/build/select-control/index.js +3 -1
  74. package/build/select-control/index.js.map +1 -1
  75. package/build/spacer/hook.js +11 -3
  76. package/build/spacer/hook.js.map +1 -1
  77. package/build/surface/component.js +7 -7
  78. package/build/surface/component.js.map +1 -1
  79. package/build/surface/hook.js +8 -11
  80. package/build/surface/hook.js.map +1 -1
  81. package/build/surface/index.js.map +1 -1
  82. package/build/surface/styles.js +8 -48
  83. package/build/surface/styles.js.map +1 -1
  84. package/build/textarea-control/index.js +40 -6
  85. package/build/textarea-control/index.js.map +1 -1
  86. package/build/textarea-control/styles/textarea-control-styles.js +3 -3
  87. package/build/textarea-control/styles/textarea-control-styles.js.map +1 -1
  88. package/build/textarea-control/types.js +6 -0
  89. package/build/textarea-control/types.js.map +1 -0
  90. package/build/utils/hooks/index.js +0 -8
  91. package/build/utils/hooks/index.js.map +1 -1
  92. package/build-module/alignment-matrix-control/index.js +5 -2
  93. package/build-module/alignment-matrix-control/index.js.map +1 -1
  94. package/build-module/autocomplete/autocompleter-ui.js +1 -1
  95. package/build-module/autocomplete/autocompleter-ui.js.map +1 -1
  96. package/build-module/autocomplete/autocompleter-ui.native.js +2 -2
  97. package/build-module/autocomplete/autocompleter-ui.native.js.map +1 -1
  98. package/build-module/autocomplete/index.js +13 -11
  99. package/build-module/autocomplete/index.js.map +1 -1
  100. package/build-module/border-box-control/border-box-control/hook.js +2 -2
  101. package/build-module/border-box-control/border-box-control/hook.js.map +1 -1
  102. package/build-module/border-box-control/border-box-control-split-controls/component.js +2 -0
  103. package/build-module/border-box-control/border-box-control-split-controls/component.js.map +1 -1
  104. package/build-module/border-box-control/border-box-control-split-controls/hook.js +11 -4
  105. package/build-module/border-box-control/border-box-control-split-controls/hook.js.map +1 -1
  106. package/build-module/border-box-control/border-box-control-visualizer/hook.js +4 -2
  107. package/build-module/border-box-control/border-box-control-visualizer/hook.js.map +1 -1
  108. package/build-module/border-box-control/styles.js +13 -8
  109. package/build-module/border-box-control/styles.js.map +1 -1
  110. package/build-module/border-control/border-control/hook.js +2 -2
  111. package/build-module/border-control/border-control/hook.js.map +1 -1
  112. package/build-module/color-palette/index.js +7 -5
  113. package/build-module/color-palette/index.js.map +1 -1
  114. package/build-module/color-palette/index.native.js +4 -1
  115. package/build-module/color-palette/index.native.js.map +1 -1
  116. package/build-module/color-picker/color-copy-button.js +73 -0
  117. package/build-module/color-picker/color-copy-button.js.map +1 -0
  118. package/build-module/color-picker/component.js +6 -15
  119. package/build-module/color-picker/component.js.map +1 -1
  120. package/build-module/color-picker/hex-input.js +18 -1
  121. package/build-module/color-picker/hex-input.js.map +1 -1
  122. package/build-module/color-picker/styles.js +9 -9
  123. package/build-module/color-picker/styles.js.map +1 -1
  124. package/build-module/custom-gradient-picker/utils.js +1 -1
  125. package/build-module/custom-gradient-picker/utils.js.map +1 -1
  126. package/build-module/date-time/{date.js → date/index.js} +46 -14
  127. package/build-module/date-time/date/index.js.map +1 -0
  128. package/build-module/date-time/date/styles.js +61 -0
  129. package/build-module/date-time/date/styles.js.map +1 -0
  130. package/build-module/date-time/{utils.js → date/utils.js} +0 -0
  131. package/build-module/date-time/date/utils.js.map +1 -0
  132. package/build-module/date-time/date-time/index.js +144 -0
  133. package/build-module/date-time/date-time/index.js.map +1 -0
  134. package/build-module/date-time/date-time/styles.js +22 -0
  135. package/build-module/date-time/date-time/styles.js.map +1 -0
  136. package/build-module/date-time/index.js +1 -105
  137. package/build-module/date-time/index.js.map +1 -1
  138. package/build-module/date-time/time/index.js +302 -0
  139. package/build-module/date-time/time/index.js.map +1 -0
  140. package/build-module/date-time/time/styles.js +118 -0
  141. package/build-module/date-time/time/styles.js.map +1 -0
  142. package/build-module/date-time/{timezone.js → time/timezone.js} +3 -2
  143. package/build-module/date-time/time/timezone.js.map +1 -0
  144. package/build-module/draggable/index.native.js +10 -5
  145. package/build-module/draggable/index.native.js.map +1 -1
  146. package/build-module/dropdown/index.js +4 -1
  147. package/build-module/dropdown/index.js.map +1 -1
  148. package/build-module/input-control/index.js +8 -4
  149. package/build-module/input-control/index.js.map +1 -1
  150. package/build-module/input-control/input-field.js +1 -25
  151. package/build-module/input-control/input-field.js.map +1 -1
  152. package/build-module/input-control/reducer/reducer.js +38 -26
  153. package/build-module/input-control/reducer/reducer.js.map +1 -1
  154. package/build-module/input-control/reducer/state.js +0 -1
  155. package/build-module/input-control/reducer/state.js.map +1 -1
  156. package/build-module/input-control/utils.js +48 -2
  157. package/build-module/input-control/utils.js.map +1 -1
  158. package/build-module/popover/index.js +40 -33
  159. package/build-module/popover/index.js.map +1 -1
  160. package/build-module/search-control/index.js +6 -7
  161. package/build-module/search-control/index.js.map +1 -1
  162. package/build-module/select-control/index.js +3 -1
  163. package/build-module/select-control/index.js.map +1 -1
  164. package/build-module/spacer/hook.js +10 -2
  165. package/build-module/spacer/hook.js.map +1 -1
  166. package/build-module/surface/component.js +7 -7
  167. package/build-module/surface/component.js.map +1 -1
  168. package/build-module/surface/hook.js +8 -11
  169. package/build-module/surface/hook.js.map +1 -1
  170. package/build-module/surface/index.js.map +1 -1
  171. package/build-module/surface/styles.js +8 -48
  172. package/build-module/surface/styles.js.map +1 -1
  173. package/build-module/textarea-control/index.js +36 -5
  174. package/build-module/textarea-control/index.js.map +1 -1
  175. package/build-module/textarea-control/styles/textarea-control-styles.js +3 -3
  176. package/build-module/textarea-control/styles/textarea-control-styles.js.map +1 -1
  177. package/build-module/textarea-control/types.js +2 -0
  178. package/build-module/textarea-control/types.js.map +1 -0
  179. package/build-module/utils/hooks/index.js +0 -1
  180. package/build-module/utils/hooks/index.js.map +1 -1
  181. package/build-style/style-rtl.css +13 -188
  182. package/build-style/style.css +13 -191
  183. package/build-types/border-box-control/border-box-control-split-controls/component.d.ts.map +1 -1
  184. package/build-types/border-box-control/border-box-control-split-controls/hook.d.ts +1 -0
  185. package/build-types/border-box-control/border-box-control-split-controls/hook.d.ts.map +1 -1
  186. package/build-types/border-box-control/border-box-control-visualizer/hook.d.ts.map +1 -1
  187. package/build-types/border-box-control/styles.d.ts +3 -2
  188. package/build-types/border-box-control/styles.d.ts.map +1 -1
  189. package/build-types/border-control/border-control/hook.d.ts.map +1 -1
  190. package/build-types/card/types.d.ts +1 -1
  191. package/build-types/card/types.d.ts.map +1 -1
  192. package/build-types/checkbox-control/test/index.d.ts +2 -0
  193. package/build-types/checkbox-control/test/index.d.ts.map +1 -0
  194. package/build-types/color-palette/index.d.ts +1 -0
  195. package/build-types/color-palette/index.d.ts.map +1 -1
  196. package/build-types/{date-time → color-palette}/test/utils.d.ts +0 -0
  197. package/build-types/color-palette/test/utils.d.ts.map +1 -0
  198. package/build-types/color-picker/color-copy-button.d.ts +4 -0
  199. package/build-types/color-picker/color-copy-button.d.ts.map +1 -0
  200. package/build-types/color-picker/component.d.ts.map +1 -1
  201. package/build-types/color-picker/hex-input.d.ts.map +1 -1
  202. package/build-types/color-picker/styles.d.ts +1 -1
  203. package/build-types/color-picker/styles.d.ts.map +1 -1
  204. package/build-types/color-picker/types.d.ts +8 -0
  205. package/build-types/color-picker/types.d.ts.map +1 -1
  206. package/build-types/date-time/{date.d.ts → date/index.d.ts} +3 -2
  207. package/build-types/date-time/date/index.d.ts.map +1 -0
  208. package/build-types/date-time/date/styles.d.ts +23 -0
  209. package/build-types/date-time/date/styles.d.ts.map +1 -0
  210. package/build-types/date-time/date/test/index.d.ts +2 -0
  211. package/build-types/date-time/date/test/index.d.ts.map +1 -0
  212. package/build-types/date-time/date/test/utils.d.ts +2 -0
  213. package/build-types/date-time/date/test/utils.d.ts.map +1 -0
  214. package/build-types/date-time/{utils.d.ts → date/utils.d.ts} +0 -0
  215. package/build-types/date-time/date/utils.d.ts.map +1 -0
  216. package/build-types/date-time/date-time/index.d.ts +33 -0
  217. package/build-types/date-time/date-time/index.d.ts.map +1 -0
  218. package/build-types/date-time/date-time/styles.d.ts +6 -0
  219. package/build-types/date-time/date-time/styles.d.ts.map +1 -0
  220. package/build-types/date-time/index.d.ts +2 -28
  221. package/build-types/date-time/index.d.ts.map +1 -1
  222. package/build-types/date-time/stories/{index.d.ts → date-time.d.ts} +2 -2
  223. package/build-types/date-time/stories/date-time.d.ts.map +1 -0
  224. package/build-types/date-time/{time.d.ts → time/index.d.ts} +2 -2
  225. package/build-types/date-time/time/index.d.ts.map +1 -0
  226. package/build-types/date-time/time/styles.d.ts +111 -0
  227. package/build-types/date-time/time/styles.d.ts.map +1 -0
  228. package/build-types/date-time/time/test/index.d.ts +2 -0
  229. package/build-types/date-time/time/test/index.d.ts.map +1 -0
  230. package/build-types/date-time/{timezone.d.ts → time/timezone.d.ts} +0 -0
  231. package/build-types/date-time/time/timezone.d.ts.map +1 -0
  232. package/build-types/date-time/types.d.ts +14 -15
  233. package/build-types/date-time/types.d.ts.map +1 -1
  234. package/build-types/dropdown/index.d.ts.map +1 -1
  235. package/build-types/input-control/index.d.ts.map +1 -1
  236. package/build-types/input-control/input-field.d.ts.map +1 -1
  237. package/build-types/input-control/reducer/reducer.d.ts +5 -3
  238. package/build-types/input-control/reducer/reducer.d.ts.map +1 -1
  239. package/build-types/input-control/reducer/state.d.ts +2 -2
  240. package/build-types/input-control/reducer/state.d.ts.map +1 -1
  241. package/build-types/input-control/utils.d.ts +17 -0
  242. package/build-types/input-control/utils.d.ts.map +1 -1
  243. package/build-types/popover/index.d.ts +1 -0
  244. package/build-types/popover/index.d.ts.map +1 -1
  245. package/build-types/select-control/index.d.ts.map +1 -1
  246. package/build-types/select-control/types.d.ts +1 -1
  247. package/build-types/select-control/types.d.ts.map +1 -1
  248. package/build-types/surface/component.d.ts +3 -2
  249. package/build-types/surface/component.d.ts.map +1 -1
  250. package/build-types/surface/hook.d.ts +4 -4
  251. package/build-types/surface/hook.d.ts.map +1 -1
  252. package/build-types/surface/index.d.ts +2 -2
  253. package/build-types/surface/index.d.ts.map +1 -1
  254. package/build-types/surface/stories/index.d.ts +12 -0
  255. package/build-types/surface/stories/index.d.ts.map +1 -0
  256. package/build-types/surface/styles.d.ts +10 -21
  257. package/build-types/surface/styles.d.ts.map +1 -1
  258. package/build-types/surface/test/index.d.ts +2 -0
  259. package/build-types/surface/test/index.d.ts.map +1 -0
  260. package/build-types/surface/types.d.ts +1 -1
  261. package/build-types/surface/types.d.ts.map +1 -1
  262. package/build-types/textarea-control/index.d.ts +29 -0
  263. package/build-types/textarea-control/index.d.ts.map +1 -0
  264. package/build-types/textarea-control/stories/index.d.ts +12 -0
  265. package/build-types/textarea-control/stories/index.d.ts.map +1 -0
  266. package/build-types/textarea-control/styles/textarea-control-styles.d.ts +6 -0
  267. package/build-types/textarea-control/styles/textarea-control-styles.d.ts.map +1 -0
  268. package/build-types/textarea-control/types.d.ts +26 -0
  269. package/build-types/textarea-control/types.d.ts.map +1 -0
  270. package/build-types/utils/hooks/index.d.ts +0 -1
  271. package/package.json +18 -18
  272. package/src/alignment-matrix-control/index.js +4 -2
  273. package/src/autocomplete/autocompleter-ui.js +1 -1
  274. package/src/autocomplete/autocompleter-ui.native.js +2 -2
  275. package/src/autocomplete/index.js +21 -9
  276. package/src/border-box-control/border-box-control/hook.ts +2 -2
  277. package/src/border-box-control/border-box-control-split-controls/component.tsx +2 -0
  278. package/src/border-box-control/border-box-control-split-controls/hook.ts +18 -4
  279. package/src/border-box-control/border-box-control-visualizer/hook.ts +5 -2
  280. package/src/border-box-control/styles.ts +6 -2
  281. package/src/border-control/border-control/hook.ts +8 -2
  282. package/src/box-control/test/index.js +120 -109
  283. package/src/card/types.ts +1 -1
  284. package/src/checkbox-control/test/__snapshots__/index.tsx.snap +42 -0
  285. package/src/checkbox-control/test/index.tsx +109 -0
  286. package/src/color-palette/index.js +11 -4
  287. package/src/color-palette/index.native.js +3 -0
  288. package/src/color-palette/stories/index.js +25 -1
  289. package/src/color-palette/test/utils.ts +24 -0
  290. package/src/color-picker/color-copy-button.tsx +76 -0
  291. package/src/color-picker/component.tsx +18 -38
  292. package/src/color-picker/hex-input.tsx +16 -0
  293. package/src/color-picker/styles.ts +5 -1
  294. package/src/color-picker/types.ts +9 -0
  295. package/src/custom-gradient-picker/utils.js +1 -1
  296. package/src/date-time/README.md +16 -0
  297. package/src/date-time/{datepicker.scss → date/datepicker.scss} +0 -0
  298. package/src/date-time/{date.tsx → date/index.tsx} +38 -15
  299. package/src/date-time/date/style.scss +75 -0
  300. package/src/date-time/date/styles.ts +55 -0
  301. package/src/date-time/{test/date.tsx → date/test/index.tsx} +1 -1
  302. package/src/date-time/{test → date/test}/utils.ts +0 -0
  303. package/src/date-time/{utils.ts → date/utils.ts} +0 -0
  304. package/src/date-time/date-time/index.tsx +217 -0
  305. package/src/date-time/date-time/styles.ts +8 -0
  306. package/src/date-time/index.ts +9 -0
  307. package/src/date-time/stories/{index.tsx → date-time.tsx} +1 -1
  308. package/src/date-time/style.scss +1 -262
  309. package/src/date-time/time/index.tsx +356 -0
  310. package/src/date-time/time/styles.ts +119 -0
  311. package/src/date-time/{test/time.tsx → time/test/index.tsx} +85 -38
  312. package/src/date-time/{timezone.tsx → time/timezone.tsx} +5 -2
  313. package/src/date-time/types.ts +16 -18
  314. package/src/draggable/index.native.js +14 -3
  315. package/src/draggable/test/index.native.js +130 -0
  316. package/src/dropdown/index.js +5 -1
  317. package/src/input-control/index.tsx +8 -2
  318. package/src/input-control/input-field.tsx +10 -30
  319. package/src/input-control/reducer/reducer.ts +40 -26
  320. package/src/input-control/reducer/state.ts +2 -3
  321. package/src/input-control/utils.ts +55 -1
  322. package/src/popover/index.js +42 -27
  323. package/src/query-controls/README.md +1 -1
  324. package/src/search-control/index.js +6 -7
  325. package/src/select-control/README.md +11 -0
  326. package/src/select-control/index.tsx +6 -1
  327. package/src/select-control/types.ts +1 -1
  328. package/src/slot-fill/README.md +1 -1
  329. package/src/spacer/hook.ts +13 -13
  330. package/src/surface/README.md +15 -15
  331. package/src/surface/{component.js → component.tsx} +13 -7
  332. package/src/surface/{hook.js → hook.ts} +13 -12
  333. package/src/surface/{index.js → index.ts} +0 -0
  334. package/src/surface/stories/index.tsx +40 -0
  335. package/src/surface/{styles.js → styles.ts} +15 -44
  336. package/src/surface/test/__snapshots__/{index.js.snap → index.tsx.snap} +0 -0
  337. package/src/surface/test/{index.js → index.tsx} +2 -1
  338. package/src/surface/types.ts +1 -1
  339. package/src/textarea-control/README.md +14 -20
  340. package/src/textarea-control/index.tsx +86 -0
  341. package/src/textarea-control/stories/index.tsx +58 -0
  342. package/src/textarea-control/styles/{textarea-control-styles.js → textarea-control-styles.ts} +0 -0
  343. package/src/textarea-control/types.ts +30 -0
  344. package/src/utils/hooks/index.js +0 -1
  345. package/tsconfig.json +1 -0
  346. package/tsconfig.tsbuildinfo +1 -1
  347. package/build/color-picker/color-display.js +0 -184
  348. package/build/color-picker/color-display.js.map +0 -1
  349. package/build/date-time/date.js.map +0 -1
  350. package/build/date-time/time.js +0 -289
  351. package/build/date-time/time.js.map +0 -1
  352. package/build/date-time/timezone.js.map +0 -1
  353. package/build/date-time/utils.js.map +0 -1
  354. package/build/utils/hooks/use-combined-ref.js +0 -32
  355. package/build/utils/hooks/use-combined-ref.js.map +0 -1
  356. package/build-module/color-picker/color-display.js +0 -170
  357. package/build-module/color-picker/color-display.js.map +0 -1
  358. package/build-module/date-time/date.js.map +0 -1
  359. package/build-module/date-time/time.js +0 -271
  360. package/build-module/date-time/time.js.map +0 -1
  361. package/build-module/date-time/timezone.js.map +0 -1
  362. package/build-module/date-time/utils.js.map +0 -1
  363. package/build-module/utils/hooks/use-combined-ref.js +0 -28
  364. package/build-module/utils/hooks/use-combined-ref.js.map +0 -1
  365. package/build-types/color-picker/color-display.d.ts +0 -14
  366. package/build-types/color-picker/color-display.d.ts.map +0 -1
  367. package/build-types/date-time/date.d.ts.map +0 -1
  368. package/build-types/date-time/stories/index.d.ts.map +0 -1
  369. package/build-types/date-time/test/date.d.ts +0 -2
  370. package/build-types/date-time/test/date.d.ts.map +0 -1
  371. package/build-types/date-time/test/time.d.ts +0 -2
  372. package/build-types/date-time/test/time.d.ts.map +0 -1
  373. package/build-types/date-time/test/utils.d.ts.map +0 -1
  374. package/build-types/date-time/time.d.ts.map +0 -1
  375. package/build-types/date-time/timezone.d.ts.map +0 -1
  376. package/build-types/date-time/utils.d.ts.map +0 -1
  377. package/build-types/utils/hooks/use-combined-ref.d.ts +0 -8
  378. package/build-types/utils/hooks/use-combined-ref.d.ts.map +0 -1
  379. package/src/color-picker/color-display.tsx +0 -169
  380. package/src/date-time/index.tsx +0 -196
  381. package/src/date-time/time.tsx +0 -321
  382. package/src/surface/stories/index.js +0 -46
  383. package/src/textarea-control/index.js +0 -45
  384. package/src/textarea-control/stories/index.js +0 -48
  385. package/src/utils/hooks/use-combined-ref.ts +0 -28
@@ -0,0 +1,144 @@
1
+ import { createElement, Fragment } from "@wordpress/element";
2
+
3
+ /**
4
+ * External dependencies
5
+ */
6
+ import { noop } from 'lodash';
7
+
8
+ /**
9
+ * WordPress dependencies
10
+ */
11
+ import { useState, forwardRef } from '@wordpress/element';
12
+ import { __, _x } from '@wordpress/i18n';
13
+ import deprecated from '@wordpress/deprecated';
14
+ /**
15
+ * Internal dependencies
16
+ */
17
+
18
+ import Button from '../../button';
19
+ import { default as DatePicker } from '../date';
20
+ import { default as TimePicker } from '../time';
21
+ import { CalendarHelp } from './styles';
22
+ import { HStack } from '../../h-stack';
23
+ import { Heading } from '../../heading';
24
+ import { Spacer } from '../../spacer';
25
+ export { DatePicker, TimePicker };
26
+
27
+ function UnforwardedDateTimePicker(_ref, ref) {
28
+ let {
29
+ currentDate,
30
+ is12Hour,
31
+ isInvalidDate,
32
+ onMonthPreviewed = noop,
33
+ onChange,
34
+ events,
35
+ __nextRemoveHelpButton = false,
36
+ __nextRemoveResetButton = false
37
+ } = _ref;
38
+
39
+ if (!__nextRemoveHelpButton) {
40
+ deprecated('Help button in wp.components.DateTimePicker', {
41
+ since: '13.4',
42
+ version: '14.6',
43
+ // Six months of plugin releases.
44
+ hint: 'Set the `__nextRemoveHelpButton` prop to `true` to remove this warning and opt in to the new behaviour, which will become the default in a future version.'
45
+ });
46
+ }
47
+
48
+ if (!__nextRemoveResetButton) {
49
+ deprecated('Reset button in wp.components.DateTimePicker', {
50
+ since: '13.4',
51
+ version: '14.6',
52
+ // Six months of plugin releases.
53
+ hint: 'Set the `__nextRemoveResetButton` prop to `true` to remove this warning and opt in to the new behaviour, which will become the default in a future version.'
54
+ });
55
+ }
56
+
57
+ const [calendarHelpIsVisible, setCalendarHelpIsVisible] = useState(false);
58
+
59
+ function onClickDescriptionToggle() {
60
+ setCalendarHelpIsVisible(!calendarHelpIsVisible);
61
+ }
62
+
63
+ return createElement("div", {
64
+ ref: ref,
65
+ className: "components-datetime"
66
+ }, !calendarHelpIsVisible && createElement(Fragment, null, createElement(TimePicker, {
67
+ currentTime: currentDate,
68
+ onChange: onChange,
69
+ is12Hour: is12Hour
70
+ }), createElement(DatePicker, {
71
+ currentDate: currentDate,
72
+ onChange: onChange,
73
+ isInvalidDate: isInvalidDate,
74
+ events: events,
75
+ onMonthPreviewed: onMonthPreviewed
76
+ })), calendarHelpIsVisible && createElement(CalendarHelp, {
77
+ className: "components-datetime__calendar-help" // Unused, for backwards compatibility.
78
+
79
+ }, createElement(Heading, {
80
+ level: 4
81
+ }, __('Click to Select')), createElement("ul", null, createElement("li", null, __('Click the right or left arrows to select other months in the past or the future.')), createElement("li", null, __('Click the desired day to select it.'))), createElement(Heading, {
82
+ level: 4
83
+ }, __('Navigating with a keyboard')), createElement("ul", null, createElement("li", null, createElement("abbr", {
84
+ "aria-label": _x('Enter', 'keyboard button')
85
+ }, "\u21B5"), ' '
86
+ /* JSX removes whitespace, but a space is required for screen readers. */
87
+ , createElement("span", null, __('Select the date in focus.'))), createElement("li", null, createElement("abbr", {
88
+ "aria-label": __('Left and Right Arrows')
89
+ }, "\u2190/\u2192"), ' '
90
+ /* JSX removes whitespace, but a space is required for screen readers. */
91
+ , __('Move backward (left) or forward (right) by one day.')), createElement("li", null, createElement("abbr", {
92
+ "aria-label": __('Up and Down Arrows')
93
+ }, "\u2191/\u2193"), ' '
94
+ /* JSX removes whitespace, but a space is required for screen readers. */
95
+ , __('Move backward (up) or forward (down) by one week.')), createElement("li", null, createElement("abbr", {
96
+ "aria-label": __('Page Up and Page Down')
97
+ }, __('PgUp/PgDn')), ' '
98
+ /* JSX removes whitespace, but a space is required for screen readers. */
99
+ , __('Move backward (PgUp) or forward (PgDn) by one month.')), createElement("li", null, createElement("abbr", {
100
+ "aria-label": __('Home and End')
101
+ }, __('Home/End')), ' '
102
+ /* JSX removes whitespace, but a space is required for screen readers. */
103
+ , __('Go to the first (Home) or last (End) day of a week.')))), (!__nextRemoveResetButton || !__nextRemoveHelpButton) && createElement(HStack, {
104
+ className: "components-datetime__buttons" // Unused, for backwards compatibility.
105
+
106
+ }, !__nextRemoveResetButton && !calendarHelpIsVisible && currentDate && createElement(Button, {
107
+ className: "components-datetime__date-reset-button" // Unused, for backwards compatibility.
108
+ ,
109
+ variant: "link",
110
+ onClick: () => onChange === null || onChange === void 0 ? void 0 : onChange(null)
111
+ }, __('Reset')), createElement(Spacer, null), !__nextRemoveHelpButton && createElement(Button, {
112
+ className: "components-datetime__date-help-toggle" // Unused, for backwards compatibility.
113
+ ,
114
+ variant: "link",
115
+ onClick: onClickDescriptionToggle
116
+ }, calendarHelpIsVisible ? __('Close') : __('Calendar Help'))));
117
+ }
118
+ /**
119
+ * DateTimePicker is a React component that renders a calendar and clock for
120
+ * date and time selection. The calendar and clock components can be accessed
121
+ * individually using the `DatePicker` and `TimePicker` components respectively.
122
+ *
123
+ * ```jsx
124
+ * import { DateTimePicker } from '@wordpress/components';
125
+ * import { useState } from '@wordpress/element';
126
+ *
127
+ * const MyDateTimePicker = () => {
128
+ * const [ date, setDate ] = useState( new Date() );
129
+ *
130
+ * return (
131
+ * <DateTimePicker
132
+ * currentDate={ date }
133
+ * onChange={ ( newDate ) => setDate( newDate ) }
134
+ * is12Hour
135
+ * />
136
+ * );
137
+ * };
138
+ * ```
139
+ */
140
+
141
+
142
+ export const DateTimePicker = forwardRef(UnforwardedDateTimePicker);
143
+ export default DateTimePicker;
144
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/components/src/date-time/date-time/index.tsx"],"names":["noop","useState","forwardRef","__","_x","deprecated","Button","default","DatePicker","TimePicker","CalendarHelp","HStack","Heading","Spacer","UnforwardedDateTimePicker","ref","currentDate","is12Hour","isInvalidDate","onMonthPreviewed","onChange","events","__nextRemoveHelpButton","__nextRemoveResetButton","since","version","hint","calendarHelpIsVisible","setCalendarHelpIsVisible","onClickDescriptionToggle","DateTimePicker"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { noop } from 'lodash';\nimport type { ForwardedRef } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { useState, forwardRef } from '@wordpress/element';\nimport { __, _x } from '@wordpress/i18n';\nimport deprecated from '@wordpress/deprecated';\n\n/**\n * Internal dependencies\n */\nimport Button from '../../button';\nimport { default as DatePicker } from '../date';\nimport { default as TimePicker } from '../time';\nimport type { DateTimePickerProps } from '../types';\nimport { CalendarHelp } from './styles';\nimport { HStack } from '../../h-stack';\nimport { Heading } from '../../heading';\nimport { Spacer } from '../../spacer';\n\nexport { DatePicker, TimePicker };\n\nfunction UnforwardedDateTimePicker(\n\t{\n\t\tcurrentDate,\n\t\tis12Hour,\n\t\tisInvalidDate,\n\t\tonMonthPreviewed = noop,\n\t\tonChange,\n\t\tevents,\n\t\t__nextRemoveHelpButton = false,\n\t\t__nextRemoveResetButton = false,\n\t}: DateTimePickerProps,\n\tref: ForwardedRef< any >\n) {\n\tif ( ! __nextRemoveHelpButton ) {\n\t\tdeprecated( 'Help button in wp.components.DateTimePicker', {\n\t\t\tsince: '13.4',\n\t\t\tversion: '14.6', // Six months of plugin releases.\n\t\t\thint:\n\t\t\t\t'Set the `__nextRemoveHelpButton` prop to `true` to remove this warning and opt in to the new behaviour, which will become the default in a future version.',\n\t\t} );\n\t}\n\tif ( ! __nextRemoveResetButton ) {\n\t\tdeprecated( 'Reset button in wp.components.DateTimePicker', {\n\t\t\tsince: '13.4',\n\t\t\tversion: '14.6', // Six months of plugin releases.\n\t\t\thint:\n\t\t\t\t'Set the `__nextRemoveResetButton` prop to `true` to remove this warning and opt in to the new behaviour, which will become the default in a future version.',\n\t\t} );\n\t}\n\n\tconst [ calendarHelpIsVisible, setCalendarHelpIsVisible ] = useState(\n\t\tfalse\n\t);\n\n\tfunction onClickDescriptionToggle() {\n\t\tsetCalendarHelpIsVisible( ! calendarHelpIsVisible );\n\t}\n\n\treturn (\n\t\t<div ref={ ref } className=\"components-datetime\">\n\t\t\t{ ! calendarHelpIsVisible && (\n\t\t\t\t<>\n\t\t\t\t\t<TimePicker\n\t\t\t\t\t\tcurrentTime={ currentDate }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\tis12Hour={ is12Hour }\n\t\t\t\t\t/>\n\t\t\t\t\t<DatePicker\n\t\t\t\t\t\tcurrentDate={ currentDate }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\tisInvalidDate={ isInvalidDate }\n\t\t\t\t\t\tevents={ events }\n\t\t\t\t\t\tonMonthPreviewed={ onMonthPreviewed }\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t{ calendarHelpIsVisible && (\n\t\t\t\t<CalendarHelp\n\t\t\t\t\tclassName=\"components-datetime__calendar-help\" // Unused, for backwards compatibility.\n\t\t\t\t>\n\t\t\t\t\t<Heading level={ 4 }>{ __( 'Click to Select' ) }</Heading>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'Click the right or left arrows to select other months in the past or the future.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>{ __( 'Click the desired day to select it.' ) }</li>\n\t\t\t\t\t</ul>\n\t\t\t\t\t<Heading level={ 4 }>\n\t\t\t\t\t\t{ __( 'Navigating with a keyboard' ) }\n\t\t\t\t\t</Heading>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<abbr\n\t\t\t\t\t\t\t\taria-label={ _x( 'Enter', 'keyboard button' ) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t↵\n\t\t\t\t\t\t\t</abbr>\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t' ' /* JSX removes whitespace, but a space is required for screen readers. */\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t<span>{ __( 'Select the date in focus.' ) }</span>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<abbr aria-label={ __( 'Left and Right Arrows' ) }>\n\t\t\t\t\t\t\t\t←/→\n\t\t\t\t\t\t\t</abbr>\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t' ' /* JSX removes whitespace, but a space is required for screen readers. */\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'Move backward (left) or forward (right) by one day.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<abbr aria-label={ __( 'Up and Down Arrows' ) }>\n\t\t\t\t\t\t\t\t↑/↓\n\t\t\t\t\t\t\t</abbr>\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t' ' /* JSX removes whitespace, but a space is required for screen readers. */\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'Move backward (up) or forward (down) by one week.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<abbr aria-label={ __( 'Page Up and Page Down' ) }>\n\t\t\t\t\t\t\t\t{ __( 'PgUp/PgDn' ) }\n\t\t\t\t\t\t\t</abbr>\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t' ' /* JSX removes whitespace, but a space is required for screen readers. */\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'Move backward (PgUp) or forward (PgDn) by one month.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<abbr aria-label={ __( 'Home and End' ) }>\n\t\t\t\t\t\t\t\t{ /* Translators: Home/End reffer to the 'Home' and 'End' buttons on the keyboard.*/ }\n\t\t\t\t\t\t\t\t{ __( 'Home/End' ) }\n\t\t\t\t\t\t\t</abbr>\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t' ' /* JSX removes whitespace, but a space is required for screen readers. */\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'Go to the first (Home) or last (End) day of a week.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</CalendarHelp>\n\t\t\t) }\n\t\t\t{ ( ! __nextRemoveResetButton || ! __nextRemoveHelpButton ) && (\n\t\t\t\t<HStack\n\t\t\t\t\tclassName=\"components-datetime__buttons\" // Unused, for backwards compatibility.\n\t\t\t\t>\n\t\t\t\t\t{ ! __nextRemoveResetButton &&\n\t\t\t\t\t\t! calendarHelpIsVisible &&\n\t\t\t\t\t\tcurrentDate && (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tclassName=\"components-datetime__date-reset-button\" // Unused, for backwards compatibility.\n\t\t\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t\t\t\tonClick={ () => onChange?.( null ) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Reset' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t) }\n\t\t\t\t\t<Spacer />\n\t\t\t\t\t{ ! __nextRemoveHelpButton && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tclassName=\"components-datetime__date-help-toggle\" // Unused, for backwards compatibility.\n\t\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t\t\tonClick={ onClickDescriptionToggle }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ calendarHelpIsVisible\n\t\t\t\t\t\t\t\t? __( 'Close' )\n\t\t\t\t\t\t\t\t: __( 'Calendar Help' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t) }\n\t\t\t\t</HStack>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\n/**\n * DateTimePicker is a React component that renders a calendar and clock for\n * date and time selection. The calendar and clock components can be accessed\n * individually using the `DatePicker` and `TimePicker` components respectively.\n *\n * ```jsx\n * import { DateTimePicker } from '@wordpress/components';\n * import { useState } from '@wordpress/element';\n *\n * const MyDateTimePicker = () => {\n * const [ date, setDate ] = useState( new Date() );\n *\n * return (\n * <DateTimePicker\n * currentDate={ date }\n * onChange={ ( newDate ) => setDate( newDate ) }\n * is12Hour\n * />\n * );\n * };\n * ```\n */\nexport const DateTimePicker = forwardRef( UnforwardedDateTimePicker );\n\nexport default DateTimePicker;\n"]}
@@ -0,0 +1,22 @@
1
+ import _styled from "@emotion/styled/base";
2
+
3
+ function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
4
+
5
+ /**
6
+ * External dependencies
7
+ */
8
+ export const CalendarHelp = _styled("div", process.env.NODE_ENV === "production" ? {
9
+ target: "e1p5onf00"
10
+ } : {
11
+ target: "e1p5onf00",
12
+ label: "CalendarHelp"
13
+ })(process.env.NODE_ENV === "production" ? {
14
+ name: "l0rwn2",
15
+ styles: "min-width:260px"
16
+ } : {
17
+ name: "l0rwn2",
18
+ styles: "min-width:260px",
19
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkB3b3JkcHJlc3MvY29tcG9uZW50cy9zcmMvZGF0ZS10aW1lL2RhdGUtdGltZS9zdHlsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS3NDIiwiZmlsZSI6IkB3b3JkcHJlc3MvY29tcG9uZW50cy9zcmMvZGF0ZS10aW1lL2RhdGUtdGltZS9zdHlsZXMudHMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEV4dGVybmFsIGRlcGVuZGVuY2llc1xuICovXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5cbmV4cG9ydCBjb25zdCBDYWxlbmRhckhlbHAgPSBzdHlsZWQuZGl2YFxuXHRtaW4td2lkdGg6IDI2MHB4O1xuYDtcbiJdfQ== */",
20
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
21
+ });
22
+ //# sourceMappingURL=styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/components/src/date-time/date-time/styles.ts"],"names":["CalendarHelp"],"mappings":";;;;AAAA;AACA;AACA;AAGA,OAAO,MAAMA,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAlB","sourcesContent":["/**\n * External dependencies\n */\nimport styled from '@emotion/styled';\n\nexport const CalendarHelp = styled.div`\n\tmin-width: 260px;\n`;\n"]}
@@ -1,113 +1,9 @@
1
- import { createElement, Fragment } from "@wordpress/element";
2
-
3
- /**
4
- * External dependencies
5
- */
6
- // Needed to initialise the default datepicker styles.
7
- // See: https://github.com/airbnb/react-dates#initialize
8
- import 'react-dates/initialize';
9
- import { noop } from 'lodash';
10
-
11
- /**
12
- * WordPress dependencies
13
- */
14
- import { useState, forwardRef } from '@wordpress/element';
15
- import { __, _x } from '@wordpress/i18n';
16
1
  /**
17
2
  * Internal dependencies
18
3
  */
19
-
20
- import Button from '../button';
21
4
  import { default as DatePicker } from './date';
22
5
  import { default as TimePicker } from './time';
6
+ import { default as DateTimePicker } from './date-time';
23
7
  export { DatePicker, TimePicker };
24
-
25
- function UnforwardedDateTimePicker(_ref, ref) {
26
- let {
27
- currentDate,
28
- is12Hour,
29
- isInvalidDate,
30
- onMonthPreviewed = noop,
31
- onChange,
32
- events
33
- } = _ref;
34
- const [calendarHelpIsVisible, setCalendarHelpIsVisible] = useState(false);
35
-
36
- function onClickDescriptionToggle() {
37
- setCalendarHelpIsVisible(!calendarHelpIsVisible);
38
- }
39
-
40
- return createElement("div", {
41
- ref: ref,
42
- className: "components-datetime"
43
- }, !calendarHelpIsVisible && createElement(Fragment, null, createElement(TimePicker, {
44
- currentTime: currentDate,
45
- onChange: onChange,
46
- is12Hour: is12Hour
47
- }), createElement(DatePicker, {
48
- currentDate: currentDate,
49
- onChange: onChange,
50
- isInvalidDate: isInvalidDate,
51
- events: events,
52
- onMonthPreviewed: onMonthPreviewed
53
- })), calendarHelpIsVisible && createElement(Fragment, null, createElement("div", {
54
- className: "components-datetime__calendar-help"
55
- }, createElement("h4", null, __('Click to Select')), createElement("ul", null, createElement("li", null, __('Click the right or left arrows to select other months in the past or the future.')), createElement("li", null, __('Click the desired day to select it.'))), createElement("h4", null, __('Navigating with a keyboard')), createElement("ul", null, createElement("li", null, createElement("abbr", {
56
- "aria-label": _x('Enter', 'keyboard button')
57
- }, "\u21B5"), ' '
58
- /* JSX removes whitespace, but a space is required for screen readers. */
59
- , createElement("span", null, __('Select the date in focus.'))), createElement("li", null, createElement("abbr", {
60
- "aria-label": __('Left and Right Arrows')
61
- }, "\u2190/\u2192"), ' '
62
- /* JSX removes whitespace, but a space is required for screen readers. */
63
- , __('Move backward (left) or forward (right) by one day.')), createElement("li", null, createElement("abbr", {
64
- "aria-label": __('Up and Down Arrows')
65
- }, "\u2191/\u2193"), ' '
66
- /* JSX removes whitespace, but a space is required for screen readers. */
67
- , __('Move backward (up) or forward (down) by one week.')), createElement("li", null, createElement("abbr", {
68
- "aria-label": __('Page Up and Page Down')
69
- }, __('PgUp/PgDn')), ' '
70
- /* JSX removes whitespace, but a space is required for screen readers. */
71
- , __('Move backward (PgUp) or forward (PgDn) by one month.')), createElement("li", null, createElement("abbr", {
72
- "aria-label": __('Home and End')
73
- }, __('Home/End')), ' '
74
- /* JSX removes whitespace, but a space is required for screen readers. */
75
- , __('Go to the first (Home) or last (End) day of a week.'))))), createElement("div", {
76
- className: "components-datetime__buttons"
77
- }, !calendarHelpIsVisible && currentDate && createElement(Button, {
78
- className: "components-datetime__date-reset-button",
79
- variant: "link",
80
- onClick: () => onChange === null || onChange === void 0 ? void 0 : onChange(null)
81
- }, __('Reset')), createElement(Button, {
82
- className: "components-datetime__date-help-toggle",
83
- variant: "link",
84
- onClick: onClickDescriptionToggle
85
- }, calendarHelpIsVisible ? __('Close') : __('Calendar Help'))));
86
- }
87
- /**
88
- * DateTimePicker is a React component that renders a calendar and clock for
89
- * date and time selection. The calendar and clock components can be accessed
90
- * individually using the `DatePicker` and `TimePicker` components respectively.
91
- *
92
- * ```jsx
93
- * import { DateTimePicker } from '@wordpress/components';
94
- * import { useState } from '@wordpress/element';
95
- *
96
- * const MyDateTimePicker = () => {
97
- * const [ date, setDate ] = useState( new Date() );
98
- *
99
- * return (
100
- * <DateTimePicker
101
- * currentDate={ date }
102
- * onChange={ ( newDate ) => setDate( newDate ) }
103
- * is12Hour
104
- * />
105
- * );
106
- * };
107
- * ```
108
- */
109
-
110
-
111
- export const DateTimePicker = forwardRef(UnforwardedDateTimePicker);
112
8
  export default DateTimePicker;
113
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/date-time/index.tsx"],"names":["noop","useState","forwardRef","__","_x","Button","default","DatePicker","TimePicker","UnforwardedDateTimePicker","ref","currentDate","is12Hour","isInvalidDate","onMonthPreviewed","onChange","events","calendarHelpIsVisible","setCalendarHelpIsVisible","onClickDescriptionToggle","DateTimePicker"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\n// Needed to initialise the default datepicker styles.\n// See: https://github.com/airbnb/react-dates#initialize\nimport 'react-dates/initialize';\nimport { noop } from 'lodash';\nimport type { ForwardedRef } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { useState, forwardRef } from '@wordpress/element';\nimport { __, _x } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport Button from '../button';\nimport { default as DatePicker } from './date';\nimport { default as TimePicker } from './time';\nimport type { DateTimePickerProps } from './types';\n\nexport { DatePicker, TimePicker };\n\nfunction UnforwardedDateTimePicker(\n\t{\n\t\tcurrentDate,\n\t\tis12Hour,\n\t\tisInvalidDate,\n\t\tonMonthPreviewed = noop,\n\t\tonChange,\n\t\tevents,\n\t}: DateTimePickerProps,\n\tref: ForwardedRef< any >\n) {\n\tconst [ calendarHelpIsVisible, setCalendarHelpIsVisible ] = useState(\n\t\tfalse\n\t);\n\n\tfunction onClickDescriptionToggle() {\n\t\tsetCalendarHelpIsVisible( ! calendarHelpIsVisible );\n\t}\n\n\treturn (\n\t\t<div ref={ ref } className=\"components-datetime\">\n\t\t\t{ ! calendarHelpIsVisible && (\n\t\t\t\t<>\n\t\t\t\t\t<TimePicker\n\t\t\t\t\t\tcurrentTime={ currentDate }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\tis12Hour={ is12Hour }\n\t\t\t\t\t/>\n\t\t\t\t\t<DatePicker\n\t\t\t\t\t\tcurrentDate={ currentDate }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\tisInvalidDate={ isInvalidDate }\n\t\t\t\t\t\tevents={ events }\n\t\t\t\t\t\tonMonthPreviewed={ onMonthPreviewed }\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t{ calendarHelpIsVisible && (\n\t\t\t\t<>\n\t\t\t\t\t<div className=\"components-datetime__calendar-help\">\n\t\t\t\t\t\t<h4>{ __( 'Click to Select' ) }</h4>\n\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t'Click the right or left arrows to select other months in the past or the future.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t{ __( 'Click the desired day to select it.' ) }\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t<h4>{ __( 'Navigating with a keyboard' ) }</h4>\n\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t<abbr\n\t\t\t\t\t\t\t\t\taria-label={ _x(\n\t\t\t\t\t\t\t\t\t\t'Enter',\n\t\t\t\t\t\t\t\t\t\t'keyboard button'\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↵\n\t\t\t\t\t\t\t\t</abbr>\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t' ' /* JSX removes whitespace, but a space is required for screen readers. */\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\t\t{ __( 'Select the date in focus.' ) }\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t<abbr\n\t\t\t\t\t\t\t\t\taria-label={ __( 'Left and Right Arrows' ) }\n\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</abbr>\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t' ' /* JSX removes whitespace, but a space is required for screen readers. */\n\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'Move backward (left) or forward (right) by one day.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t<abbr aria-label={ __( 'Up and Down Arrows' ) }>\n\t\t\t\t\t\t\t\t\t↑/↓\n\t\t\t\t\t\t\t\t</abbr>\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t' ' /* JSX removes whitespace, but a space is required for screen readers. */\n\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'Move backward (up) or forward (down) by one week.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t<abbr\n\t\t\t\t\t\t\t\t\taria-label={ __( 'Page Up and Page Down' ) }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ __( 'PgUp/PgDn' ) }\n\t\t\t\t\t\t\t\t</abbr>\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t' ' /* JSX removes whitespace, but a space is required for screen readers. */\n\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'Move backward (PgUp) or forward (PgDn) by one month.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t<abbr aria-label={ __( 'Home and End' ) }>\n\t\t\t\t\t\t\t\t\t{ /* Translators: Home/End reffer to the 'Home' and 'End' buttons on the keyboard.*/ }\n\t\t\t\t\t\t\t\t\t{ __( 'Home/End' ) }\n\t\t\t\t\t\t\t\t</abbr>\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t' ' /* JSX removes whitespace, but a space is required for screen readers. */\n\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'Go to the first (Home) or last (End) day of a week.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t</ul>\n\t\t\t\t\t</div>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t<div className=\"components-datetime__buttons\">\n\t\t\t\t{ ! calendarHelpIsVisible && currentDate && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclassName=\"components-datetime__date-reset-button\"\n\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t\tonClick={ () => onChange?.( null ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Reset' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t) }\n\t\t\t\t<Button\n\t\t\t\t\tclassName=\"components-datetime__date-help-toggle\"\n\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\tonClick={ onClickDescriptionToggle }\n\t\t\t\t>\n\t\t\t\t\t{ calendarHelpIsVisible\n\t\t\t\t\t\t? __( 'Close' )\n\t\t\t\t\t\t: __( 'Calendar Help' ) }\n\t\t\t\t</Button>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\n/**\n * DateTimePicker is a React component that renders a calendar and clock for\n * date and time selection. The calendar and clock components can be accessed\n * individually using the `DatePicker` and `TimePicker` components respectively.\n *\n * ```jsx\n * import { DateTimePicker } from '@wordpress/components';\n * import { useState } from '@wordpress/element';\n *\n * const MyDateTimePicker = () => {\n * const [ date, setDate ] = useState( new Date() );\n *\n * return (\n * <DateTimePicker\n * currentDate={ date }\n * onChange={ ( newDate ) => setDate( newDate ) }\n * is12Hour\n * />\n * );\n * };\n * ```\n */\nexport const DateTimePicker = forwardRef( UnforwardedDateTimePicker );\n\nexport default DateTimePicker;\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/date-time/index.ts"],"names":["default","DatePicker","TimePicker","DateTimePicker"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,OAAO,IAAIC,UAApB,QAAsC,QAAtC;AACA,SAASD,OAAO,IAAIE,UAApB,QAAsC,QAAtC;AACA,SAASF,OAAO,IAAIG,cAApB,QAA0C,aAA1C;AAEA,SAASF,UAAT,EAAqBC,UAArB;AACA,eAAeC,cAAf","sourcesContent":["/**\n * Internal dependencies\n */\nimport { default as DatePicker } from './date';\nimport { default as TimePicker } from './time';\nimport { default as DateTimePicker } from './date-time';\n\nexport { DatePicker, TimePicker };\nexport default DateTimePicker;\n"]}
@@ -0,0 +1,302 @@
1
+ import { createElement, Fragment } from "@wordpress/element";
2
+
3
+ /**
4
+ * External dependencies
5
+ */
6
+ import moment from 'moment';
7
+ /**
8
+ * WordPress dependencies
9
+ */
10
+
11
+ import { useState, useMemo, useEffect } from '@wordpress/element';
12
+ import { __ } from '@wordpress/i18n';
13
+ /**
14
+ * Internal dependencies
15
+ */
16
+
17
+ import Button from '../../button';
18
+ import ButtonGroup from '../../button-group';
19
+ import TimeZone from './timezone';
20
+ import { Wrapper, Fieldset, Legend, HoursInput, TimeSeparator, MinutesInput, MonthSelectWrapper, MonthSelect, DayInput, YearInput, TimeWrapper } from './styles';
21
+ import { HStack } from '../../h-stack';
22
+ import { Spacer } from '../../spacer';
23
+ import { COMMIT, PRESS_DOWN, PRESS_UP } from '../../input-control/reducer/actions';
24
+ const TIMEZONELESS_FORMAT = 'YYYY-MM-DDTHH:mm:ss';
25
+
26
+ function from12hTo24h(hours, isPm) {
27
+ return isPm ? (hours % 12 + 12) % 24 : hours % 12;
28
+ }
29
+ /**
30
+ * Creates an InputControl reducer used to pad an input so that it is always a
31
+ * given width. For example, the hours and minutes inputs are padded to 2 so
32
+ * that '4' appears as '04'.
33
+ *
34
+ * @param pad How many digits the value should be.
35
+ */
36
+
37
+
38
+ function buildPadInputStateReducer(pad) {
39
+ return (state, action) => {
40
+ const nextState = { ...state
41
+ };
42
+
43
+ if (action.type === COMMIT || action.type === PRESS_UP || action.type === PRESS_DOWN) {
44
+ if (nextState.value !== undefined) {
45
+ nextState.value = nextState.value.toString().padStart(pad, '0');
46
+ }
47
+ }
48
+
49
+ return nextState;
50
+ };
51
+ }
52
+ /**
53
+ * TimePicker is a React component that renders a clock for time selection.
54
+ *
55
+ * ```jsx
56
+ * import { TimePicker } from '@wordpress/components';
57
+ * import { useState } from '@wordpress/element';
58
+ *
59
+ * const MyTimePicker = () => {
60
+ * const [ time, setTime ] = useState( new Date() );
61
+ *
62
+ * return (
63
+ * <TimePicker
64
+ * currentTime={ date }
65
+ * onChange={ ( newTime ) => setTime( newTime ) }
66
+ * is12Hour
67
+ * />
68
+ * );
69
+ * };
70
+ * ```
71
+ */
72
+
73
+
74
+ export function TimePicker(_ref) {
75
+ let {
76
+ is12Hour,
77
+ currentTime,
78
+ onChange
79
+ } = _ref;
80
+ const [date, setDate] = useState(() => // Truncate the date at the minutes, see: #15495.
81
+ currentTime ? moment(currentTime).startOf('minutes') : moment()); // Reset the state when currentTime changed.
82
+
83
+ useEffect(() => {
84
+ setDate(currentTime ? moment(currentTime).startOf('minutes') : moment());
85
+ }, [currentTime]);
86
+ const {
87
+ day,
88
+ month,
89
+ year,
90
+ minutes,
91
+ hours,
92
+ am
93
+ } = useMemo(() => ({
94
+ day: date.format('DD'),
95
+ month: date.format('MM'),
96
+ year: date.format('YYYY'),
97
+ minutes: date.format('mm'),
98
+ hours: date.format(is12Hour ? 'hh' : 'HH'),
99
+ am: Number(date.format('H')) <= 11 ? 'AM' : 'PM'
100
+ }), [date, is12Hour]);
101
+
102
+ const buildNumberControlChangeCallback = method => {
103
+ const callback = (value, _ref2) => {
104
+ let {
105
+ event
106
+ } = _ref2;
107
+
108
+ if (!(event.target instanceof HTMLInputElement)) {
109
+ return;
110
+ }
111
+
112
+ if (!event.target.validity.valid) {
113
+ return;
114
+ } // We can safely assume value is a number if target is valid.
115
+
116
+
117
+ let numberValue = Number(value); // If the 12-hour format is being used and the 'PM' period is
118
+ // selected, then the incoming value (which ranges 1-12) should be
119
+ // increased by 12 to match the expected 24-hour format.
120
+
121
+ if (method === 'hours' && is12Hour) {
122
+ numberValue = from12hTo24h(numberValue, am === 'PM');
123
+ }
124
+
125
+ const newDate = date.clone()[method](numberValue);
126
+ setDate(newDate);
127
+ onChange === null || onChange === void 0 ? void 0 : onChange(newDate.format(TIMEZONELESS_FORMAT));
128
+ };
129
+
130
+ return callback;
131
+ };
132
+
133
+ function buildAmPmChangeCallback(value) {
134
+ return () => {
135
+ if (am === value) {
136
+ return;
137
+ }
138
+
139
+ const parsedHours = parseInt(hours, 10);
140
+ const newDate = date.clone().hours(from12hTo24h(parsedHours, value === 'PM'));
141
+ setDate(newDate);
142
+ onChange === null || onChange === void 0 ? void 0 : onChange(newDate.format(TIMEZONELESS_FORMAT));
143
+ };
144
+ }
145
+
146
+ const dayField = createElement(DayInput, {
147
+ className: "components-datetime__time-field components-datetime__time-field-day" // Unused, for backwards compatibility.
148
+ ,
149
+ label: __('Day'),
150
+ hideLabelFromVision: true,
151
+ __next36pxDefaultSize: true,
152
+ value: day,
153
+ step: 1,
154
+ min: 1,
155
+ max: 31,
156
+ required: true,
157
+ hideHTMLArrows: true,
158
+ isPressEnterToChange: true,
159
+ isDragEnabled: false,
160
+ isShiftStepEnabled: false,
161
+ onChange: buildNumberControlChangeCallback('date')
162
+ });
163
+ const monthField = createElement(MonthSelectWrapper, null, createElement(MonthSelect, {
164
+ className: "components-datetime__time-field components-datetime__time-field-month" // Unused, for backwards compatibility.
165
+ ,
166
+ label: __('Month'),
167
+ hideLabelFromVision: true,
168
+ __nextHasNoMarginBottom: true,
169
+ value: month,
170
+ options: [{
171
+ value: '01',
172
+ label: __('January')
173
+ }, {
174
+ value: '02',
175
+ label: __('February')
176
+ }, {
177
+ value: '03',
178
+ label: __('March')
179
+ }, {
180
+ value: '04',
181
+ label: __('April')
182
+ }, {
183
+ value: '05',
184
+ label: __('May')
185
+ }, {
186
+ value: '06',
187
+ label: __('June')
188
+ }, {
189
+ value: '07',
190
+ label: __('July')
191
+ }, {
192
+ value: '08',
193
+ label: __('August')
194
+ }, {
195
+ value: '09',
196
+ label: __('September')
197
+ }, {
198
+ value: '10',
199
+ label: __('October')
200
+ }, {
201
+ value: '11',
202
+ label: __('November')
203
+ }, {
204
+ value: '12',
205
+ label: __('December')
206
+ }],
207
+ onChange: value => {
208
+ const newDate = date.clone().month(Number(value) - 1);
209
+ setDate(newDate);
210
+ onChange === null || onChange === void 0 ? void 0 : onChange(newDate.format(TIMEZONELESS_FORMAT));
211
+ }
212
+ }));
213
+ return createElement(Wrapper, {
214
+ className: "components-datetime__time" // Unused, for backwards compatibility.
215
+
216
+ }, createElement(Fieldset, null, createElement(Legend, {
217
+ className: "components-datetime__time-legend" // Unused, for backwards compatibility.
218
+
219
+ }, __('Time')), createElement(HStack, {
220
+ className: "components-datetime__time-wrapper" // Unused, for backwards compatibility.
221
+
222
+ }, createElement(TimeWrapper, {
223
+ className: "components-datetime__time-field components-datetime__time-field-time" // Unused, for backwards compatibility.
224
+
225
+ }, createElement(HoursInput, {
226
+ className: "components-datetime__time-field-hours-input" // Unused, for backwards compatibility.
227
+ ,
228
+ label: __('Hours'),
229
+ hideLabelFromVision: true,
230
+ __next36pxDefaultSize: true,
231
+ value: hours,
232
+ step: 1,
233
+ min: is12Hour ? 1 : 0,
234
+ max: is12Hour ? 12 : 23,
235
+ required: true,
236
+ hideHTMLArrows: true,
237
+ isPressEnterToChange: true,
238
+ isDragEnabled: false,
239
+ isShiftStepEnabled: false,
240
+ onChange: buildNumberControlChangeCallback('hours'),
241
+ __unstableStateReducer: buildPadInputStateReducer(2)
242
+ }), createElement(TimeSeparator, {
243
+ className: "components-datetime__time-separator" // Unused, for backwards compatibility.
244
+ ,
245
+ "aria-hidden": "true"
246
+ }, ":"), createElement(MinutesInput, {
247
+ className: "components-datetime__time-field-minutes-input" // Unused, for backwards compatibility.
248
+ ,
249
+ label: __('Minutes'),
250
+ hideLabelFromVision: true,
251
+ __next36pxDefaultSize: true,
252
+ value: minutes,
253
+ step: 1,
254
+ min: 0,
255
+ max: 59,
256
+ required: true,
257
+ hideHTMLArrows: true,
258
+ isPressEnterToChange: true,
259
+ isDragEnabled: false,
260
+ isShiftStepEnabled: false,
261
+ onChange: buildNumberControlChangeCallback('minutes'),
262
+ __unstableStateReducer: buildPadInputStateReducer(2)
263
+ })), is12Hour && createElement(ButtonGroup, {
264
+ className: "components-datetime__time-field components-datetime__time-field-am-pm" // Unused, for backwards compatibility.
265
+
266
+ }, createElement(Button, {
267
+ className: "components-datetime__time-am-button" // Unused, for backwards compatibility.
268
+ ,
269
+ variant: am === 'AM' ? 'primary' : 'secondary',
270
+ onClick: buildAmPmChangeCallback('AM')
271
+ }, __('AM')), createElement(Button, {
272
+ className: "components-datetime__time-pm-button" // Unused, for backwards compatibility.
273
+ ,
274
+ variant: am === 'PM' ? 'primary' : 'secondary',
275
+ onClick: buildAmPmChangeCallback('PM')
276
+ }, __('PM'))), createElement(Spacer, null), createElement(TimeZone, null))), createElement(Fieldset, null, createElement(Legend, {
277
+ className: "components-datetime__time-legend" // Unused, for backwards compatibility.
278
+
279
+ }, __('Date')), createElement(HStack, {
280
+ className: "components-datetime__time-wrapper" // Unused, for backwards compatibility.
281
+
282
+ }, is12Hour ? createElement(Fragment, null, monthField, dayField) : createElement(Fragment, null, dayField, monthField), createElement(YearInput, {
283
+ className: "components-datetime__time-field components-datetime__time-field-year" // Unused, for backwards compatibility.
284
+ ,
285
+ label: __('Year'),
286
+ hideLabelFromVision: true,
287
+ __next36pxDefaultSize: true,
288
+ value: year,
289
+ step: 1,
290
+ min: 1,
291
+ max: 9999,
292
+ required: true,
293
+ hideHTMLArrows: true,
294
+ isPressEnterToChange: true,
295
+ isDragEnabled: false,
296
+ isShiftStepEnabled: false,
297
+ onChange: buildNumberControlChangeCallback('year'),
298
+ __unstableStateReducer: buildPadInputStateReducer(4)
299
+ }))));
300
+ }
301
+ export default TimePicker;
302
+ //# sourceMappingURL=index.js.map