@wordpress/components 28.6.0 → 28.8.1-next.5368f64a9.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 (644) hide show
  1. package/CHANGELOG.md +107 -0
  2. package/CONTRIBUTING.md +42 -19
  3. package/build/alignment-matrix-control/cell.js +4 -7
  4. package/build/alignment-matrix-control/cell.js.map +1 -1
  5. package/build/alignment-matrix-control/icon.js +31 -19
  6. package/build/alignment-matrix-control/icon.js.map +1 -1
  7. package/build/alignment-matrix-control/index.js +55 -51
  8. package/build/alignment-matrix-control/index.js.map +1 -1
  9. package/build/alignment-matrix-control/styles.js +73 -0
  10. package/build/alignment-matrix-control/styles.js.map +1 -0
  11. package/build/alignment-matrix-control/types.js.map +1 -1
  12. package/build/angle-picker-control/angle-circle.js +9 -9
  13. package/build/angle-picker-control/angle-circle.js.map +1 -1
  14. package/build/border-control/border-control/component.js +18 -13
  15. package/build/border-control/border-control/component.js.map +1 -1
  16. package/build/circular-option-picker/circular-option-picker-option.js +15 -9
  17. package/build/circular-option-picker/circular-option-picker-option.js.map +1 -1
  18. package/build/circular-option-picker/circular-option-picker.js +15 -12
  19. package/build/circular-option-picker/circular-option-picker.js.map +1 -1
  20. package/build/circular-option-picker/types.js.map +1 -1
  21. package/build/clipboard-button/index.js +6 -6
  22. package/build/clipboard-button/index.js.map +1 -1
  23. package/build/color-palette/utils.js +1 -2
  24. package/build/color-palette/utils.js.map +1 -1
  25. package/build/color-picker/color-copy-button.js +8 -8
  26. package/build/color-picker/color-copy-button.js.map +1 -1
  27. package/build/color-picker/hex-input.js +8 -8
  28. package/build/color-picker/hex-input.js.map +1 -1
  29. package/build/color-picker/input-with-slider.js +8 -8
  30. package/build/color-picker/input-with-slider.js.map +1 -1
  31. package/build/color-picker/styles.js +8 -8
  32. package/build/color-picker/styles.js.map +1 -1
  33. package/build/combobox-control/types.js.map +1 -1
  34. package/build/composite/context.js +1 -1
  35. package/build/composite/context.js.map +1 -1
  36. package/build/composite/group-label.js +33 -0
  37. package/build/composite/group-label.js.map +1 -0
  38. package/build/composite/group.js +33 -0
  39. package/build/composite/group.js.map +1 -0
  40. package/build/composite/hover.js +33 -0
  41. package/build/composite/hover.js.map +1 -0
  42. package/build/composite/index.js +63 -118
  43. package/build/composite/index.js.map +1 -1
  44. package/build/composite/item.js +33 -0
  45. package/build/composite/item.js.map +1 -0
  46. package/build/composite/legacy/index.js +59 -7
  47. package/build/composite/legacy/index.js.map +1 -1
  48. package/build/composite/row.js +33 -0
  49. package/build/composite/row.js.map +1 -0
  50. package/build/composite/typeahead.js +33 -0
  51. package/build/composite/typeahead.js.map +1 -0
  52. package/build/composite/types.js.map +1 -1
  53. package/build/custom-gradient-picker/gradient-bar/control-points.js +8 -8
  54. package/build/custom-gradient-picker/gradient-bar/control-points.js.map +1 -1
  55. package/build/custom-select-control-v2/styles.js +12 -14
  56. package/build/custom-select-control-v2/styles.js.map +1 -1
  57. package/build/date-time/date/index.js +1 -1
  58. package/build/date-time/date/index.js.map +1 -1
  59. package/build/date-time/date/styles.js +37 -26
  60. package/build/date-time/date/styles.js.map +1 -1
  61. package/build/date-time/date/use-lilius/index.js +163 -0
  62. package/build/date-time/date/use-lilius/index.js.map +1 -0
  63. package/build/date-time/time/time-input/index.js +17 -19
  64. package/build/date-time/time/time-input/index.js.map +1 -1
  65. package/build/dimension-control/index.js +6 -1
  66. package/build/dimension-control/index.js.map +1 -1
  67. package/build/draggable/index.js +4 -4
  68. package/build/draggable/index.js.map +1 -1
  69. package/build/dropdown-menu-v2/checkbox-item.js +69 -0
  70. package/build/dropdown-menu-v2/checkbox-item.js.map +1 -0
  71. package/build/dropdown-menu-v2/context.js +17 -0
  72. package/build/dropdown-menu-v2/context.js.map +1 -0
  73. package/build/dropdown-menu-v2/group-label.js +40 -0
  74. package/build/dropdown-menu-v2/group-label.js.map +1 -0
  75. package/build/dropdown-menu-v2/group.js +29 -0
  76. package/build/dropdown-menu-v2/group.js.map +1 -0
  77. package/build/dropdown-menu-v2/index.js +58 -146
  78. package/build/dropdown-menu-v2/index.js.map +1 -1
  79. package/build/dropdown-menu-v2/item-help-text.js +27 -0
  80. package/build/dropdown-menu-v2/item-help-text.js.map +1 -0
  81. package/build/dropdown-menu-v2/item-label.js +27 -0
  82. package/build/dropdown-menu-v2/item-label.js.map +1 -0
  83. package/build/dropdown-menu-v2/item.js +53 -0
  84. package/build/dropdown-menu-v2/item.js.map +1 -0
  85. package/build/dropdown-menu-v2/radio-item.js +79 -0
  86. package/build/dropdown-menu-v2/radio-item.js.map +1 -0
  87. package/build/dropdown-menu-v2/separator.js +30 -0
  88. package/build/dropdown-menu-v2/separator.js.map +1 -0
  89. package/build/dropdown-menu-v2/styles.js +54 -78
  90. package/build/dropdown-menu-v2/styles.js.map +1 -1
  91. package/build/dropdown-menu-v2/types.js.map +1 -1
  92. package/build/dropdown-menu-v2/use-temporary-focus-visible-fix.js +27 -0
  93. package/build/dropdown-menu-v2/use-temporary-focus-visible-fix.js.map +1 -0
  94. package/build/focal-point-picker/styles/focal-point-style.js +7 -2
  95. package/build/focal-point-picker/styles/focal-point-style.js.map +1 -1
  96. package/build/form-token-field/types.js.map +1 -1
  97. package/build/index.js +13 -0
  98. package/build/index.js.map +1 -1
  99. package/build/input-control/index.js +2 -2
  100. package/build/input-control/index.js.map +1 -1
  101. package/build/input-control/input-base.js +5 -10
  102. package/build/input-control/input-base.js.map +1 -1
  103. package/build/input-control/input-prefix-wrapper.js +3 -3
  104. package/build/input-control/input-prefix-wrapper.js.map +1 -1
  105. package/build/input-control/input-suffix-wrapper.js +2 -3
  106. package/build/input-control/input-suffix-wrapper.js.map +1 -1
  107. package/build/input-control/reducer/reducer.js +8 -8
  108. package/build/input-control/reducer/reducer.js.map +1 -1
  109. package/build/input-control/styles/input-control-styles.js +75 -45
  110. package/build/input-control/styles/input-control-styles.js.map +1 -1
  111. package/build/input-control/types.js.map +1 -1
  112. package/build/input-control/utils.js +3 -3
  113. package/build/input-control/utils.js.map +1 -1
  114. package/build/item-group/styles.js +10 -10
  115. package/build/item-group/styles.js.map +1 -1
  116. package/build/modal/index.js +16 -9
  117. package/build/modal/index.js.map +1 -1
  118. package/build/navigation/index.js +4 -4
  119. package/build/navigation/index.js.map +1 -1
  120. package/build/navigation/styles/navigation-styles.js +13 -13
  121. package/build/navigation/styles/navigation-styles.js.map +1 -1
  122. package/build/navigator/index.js +12 -13
  123. package/build/navigator/index.js.map +1 -1
  124. package/build/navigator/navigator-back-button/hook.js +2 -2
  125. package/build/navigator/navigator-back-button/hook.js.map +1 -1
  126. package/build/navigator/navigator-button/hook.js +2 -2
  127. package/build/navigator/navigator-button/hook.js.map +1 -1
  128. package/build/navigator/navigator-provider/component.js +99 -67
  129. package/build/navigator/navigator-provider/component.js.map +1 -1
  130. package/build/navigator/navigator-screen/component.js +5 -0
  131. package/build/navigator/navigator-screen/component.js.map +1 -1
  132. package/build/navigator/navigator-to-parent-button/component.js +2 -2
  133. package/build/navigator/navigator-to-parent-button/component.js.map +1 -1
  134. package/build/navigator/types.js.map +1 -1
  135. package/build/navigator/use-navigator.js +1 -2
  136. package/build/navigator/use-navigator.js.map +1 -1
  137. package/build/palette-edit/index.js +2 -2
  138. package/build/palette-edit/index.js.map +1 -1
  139. package/build/private-apis.js +1 -14
  140. package/build/private-apis.js.map +1 -1
  141. package/build/range-control/styles/range-control-styles.js +30 -30
  142. package/build/range-control/styles/range-control-styles.js.map +1 -1
  143. package/build/resizable-box/resize-tooltip/styles/resize-tooltip.styles.js +4 -4
  144. package/build/resizable-box/resize-tooltip/styles/resize-tooltip.styles.js.map +1 -1
  145. package/build/select-control/styles/select-control-styles.js +12 -12
  146. package/build/select-control/styles/select-control-styles.js.map +1 -1
  147. package/build/slot-fill/bubbles-virtually/fill.js +4 -4
  148. package/build/slot-fill/bubbles-virtually/fill.js.map +1 -1
  149. package/build/slot-fill/index.js +1 -0
  150. package/build/slot-fill/index.js.map +1 -1
  151. package/build/snackbar/index.js +4 -4
  152. package/build/snackbar/index.js.map +1 -1
  153. package/build/tabs/index.js +4 -4
  154. package/build/tabs/index.js.map +1 -1
  155. package/build/tabs/styles.js +3 -3
  156. package/build/tabs/styles.js.map +1 -1
  157. package/build/tabs/tablist.js +5 -4
  158. package/build/tabs/tablist.js.map +1 -1
  159. package/build/toggle-group-control/toggle-group-control/utils.js +6 -6
  160. package/build/toggle-group-control/toggle-group-control/utils.js.map +1 -1
  161. package/build/tools-panel/tools-panel/hook.js +6 -6
  162. package/build/tools-panel/tools-panel/hook.js.map +1 -1
  163. package/build/unit-control/styles/unit-control-styles.js +7 -7
  164. package/build/unit-control/styles/unit-control-styles.js.map +1 -1
  165. package/build/utils/config-values.js +6 -4
  166. package/build/utils/config-values.js.map +1 -1
  167. package/build/utils/element-rect.js +73 -105
  168. package/build/utils/element-rect.js.map +1 -1
  169. package/build/utils/hooks/use-update-effect.js +4 -4
  170. package/build/utils/hooks/use-update-effect.js.map +1 -1
  171. package/build-module/alignment-matrix-control/cell.js +2 -5
  172. package/build-module/alignment-matrix-control/cell.js.map +1 -1
  173. package/build-module/alignment-matrix-control/icon.js +31 -19
  174. package/build-module/alignment-matrix-control/icon.js.map +1 -1
  175. package/build-module/alignment-matrix-control/index.js +55 -50
  176. package/build-module/alignment-matrix-control/index.js.map +1 -1
  177. package/build-module/alignment-matrix-control/styles.js +70 -0
  178. package/build-module/alignment-matrix-control/styles.js.map +1 -0
  179. package/build-module/alignment-matrix-control/types.js.map +1 -1
  180. package/build-module/angle-picker-control/angle-circle.js +9 -9
  181. package/build-module/angle-picker-control/angle-circle.js.map +1 -1
  182. package/build-module/border-control/border-control/component.js +18 -13
  183. package/build-module/border-control/border-control/component.js.map +1 -1
  184. package/build-module/circular-option-picker/circular-option-picker-option.js +16 -10
  185. package/build-module/circular-option-picker/circular-option-picker-option.js.map +1 -1
  186. package/build-module/circular-option-picker/circular-option-picker.js +16 -13
  187. package/build-module/circular-option-picker/circular-option-picker.js.map +1 -1
  188. package/build-module/circular-option-picker/types.js.map +1 -1
  189. package/build-module/clipboard-button/index.js +6 -6
  190. package/build-module/clipboard-button/index.js.map +1 -1
  191. package/build-module/color-palette/utils.js +1 -2
  192. package/build-module/color-palette/utils.js.map +1 -1
  193. package/build-module/color-picker/color-copy-button.js +8 -8
  194. package/build-module/color-picker/color-copy-button.js.map +1 -1
  195. package/build-module/color-picker/hex-input.js +7 -8
  196. package/build-module/color-picker/hex-input.js.map +1 -1
  197. package/build-module/color-picker/input-with-slider.js +7 -8
  198. package/build-module/color-picker/input-with-slider.js.map +1 -1
  199. package/build-module/color-picker/styles.js +8 -8
  200. package/build-module/color-picker/styles.js.map +1 -1
  201. package/build-module/combobox-control/types.js.map +1 -1
  202. package/build-module/composite/context.js +1 -1
  203. package/build-module/composite/context.js.map +1 -1
  204. package/build-module/composite/group-label.js +25 -0
  205. package/build-module/composite/group-label.js.map +1 -0
  206. package/build-module/composite/group.js +25 -0
  207. package/build-module/composite/group.js.map +1 -0
  208. package/build-module/composite/hover.js +25 -0
  209. package/build-module/composite/hover.js.map +1 -0
  210. package/build-module/composite/index.js +64 -118
  211. package/build-module/composite/index.js.map +1 -1
  212. package/build-module/composite/item.js +25 -0
  213. package/build-module/composite/item.js.map +1 -0
  214. package/build-module/composite/legacy/index.js +57 -8
  215. package/build-module/composite/legacy/index.js.map +1 -1
  216. package/build-module/composite/row.js +25 -0
  217. package/build-module/composite/row.js.map +1 -0
  218. package/build-module/composite/typeahead.js +25 -0
  219. package/build-module/composite/typeahead.js.map +1 -0
  220. package/build-module/composite/types.js.map +1 -1
  221. package/build-module/custom-gradient-picker/gradient-bar/control-points.js +8 -8
  222. package/build-module/custom-gradient-picker/gradient-bar/control-points.js.map +1 -1
  223. package/build-module/custom-select-control-v2/styles.js +12 -14
  224. package/build-module/custom-select-control-v2/styles.js.map +1 -1
  225. package/build-module/date-time/date/index.js +1 -2
  226. package/build-module/date-time/date/index.js.map +1 -1
  227. package/build-module/date-time/date/styles.js +33 -26
  228. package/build-module/date-time/date/styles.js.map +1 -1
  229. package/build-module/date-time/date/use-lilius/index.js +158 -0
  230. package/build-module/date-time/date/use-lilius/index.js.map +1 -0
  231. package/build-module/date-time/time/time-input/index.js +17 -19
  232. package/build-module/date-time/time/time-input/index.js.map +1 -1
  233. package/build-module/dimension-control/index.js +6 -1
  234. package/build-module/dimension-control/index.js.map +1 -1
  235. package/build-module/draggable/index.js +4 -4
  236. package/build-module/draggable/index.js.map +1 -1
  237. package/build-module/dropdown-menu-v2/checkbox-item.js +62 -0
  238. package/build-module/dropdown-menu-v2/checkbox-item.js.map +1 -0
  239. package/build-module/dropdown-menu-v2/context.js +11 -0
  240. package/build-module/dropdown-menu-v2/context.js.map +1 -0
  241. package/build-module/dropdown-menu-v2/group-label.js +32 -0
  242. package/build-module/dropdown-menu-v2/group-label.js.map +1 -0
  243. package/build-module/dropdown-menu-v2/group.js +21 -0
  244. package/build-module/dropdown-menu-v2/group.js.map +1 -0
  245. package/build-module/dropdown-menu-v2/index.js +57 -144
  246. package/build-module/dropdown-menu-v2/index.js.map +1 -1
  247. package/build-module/dropdown-menu-v2/item-help-text.js +19 -0
  248. package/build-module/dropdown-menu-v2/item-help-text.js.map +1 -0
  249. package/build-module/dropdown-menu-v2/item-label.js +19 -0
  250. package/build-module/dropdown-menu-v2/item-label.js.map +1 -0
  251. package/build-module/dropdown-menu-v2/item.js +46 -0
  252. package/build-module/dropdown-menu-v2/item.js.map +1 -0
  253. package/build-module/dropdown-menu-v2/radio-item.js +72 -0
  254. package/build-module/dropdown-menu-v2/radio-item.js.map +1 -0
  255. package/build-module/dropdown-menu-v2/separator.js +22 -0
  256. package/build-module/dropdown-menu-v2/separator.js.map +1 -0
  257. package/build-module/dropdown-menu-v2/styles.js +54 -78
  258. package/build-module/dropdown-menu-v2/styles.js.map +1 -1
  259. package/build-module/dropdown-menu-v2/types.js.map +1 -1
  260. package/build-module/dropdown-menu-v2/use-temporary-focus-visible-fix.js +20 -0
  261. package/build-module/dropdown-menu-v2/use-temporary-focus-visible-fix.js.map +1 -0
  262. package/build-module/focal-point-picker/styles/focal-point-style.js +6 -2
  263. package/build-module/focal-point-picker/styles/focal-point-style.js.map +1 -1
  264. package/build-module/form-token-field/types.js.map +1 -1
  265. package/build-module/index.js +3 -1
  266. package/build-module/index.js.map +1 -1
  267. package/build-module/input-control/index.js +2 -2
  268. package/build-module/input-control/index.js.map +1 -1
  269. package/build-module/input-control/input-base.js +6 -11
  270. package/build-module/input-control/input-base.js.map +1 -1
  271. package/build-module/input-control/input-prefix-wrapper.js +4 -3
  272. package/build-module/input-control/input-prefix-wrapper.js.map +1 -1
  273. package/build-module/input-control/input-suffix-wrapper.js +3 -3
  274. package/build-module/input-control/input-suffix-wrapper.js.map +1 -1
  275. package/build-module/input-control/reducer/reducer.js +8 -8
  276. package/build-module/input-control/reducer/reducer.js.map +1 -1
  277. package/build-module/input-control/styles/input-control-styles.js +74 -44
  278. package/build-module/input-control/styles/input-control-styles.js.map +1 -1
  279. package/build-module/input-control/types.js.map +1 -1
  280. package/build-module/input-control/utils.js +3 -3
  281. package/build-module/input-control/utils.js.map +1 -1
  282. package/build-module/item-group/styles.js +10 -10
  283. package/build-module/item-group/styles.js.map +1 -1
  284. package/build-module/modal/index.js +17 -9
  285. package/build-module/modal/index.js.map +1 -1
  286. package/build-module/navigation/index.js +4 -4
  287. package/build-module/navigation/index.js.map +1 -1
  288. package/build-module/navigation/styles/navigation-styles.js +14 -14
  289. package/build-module/navigation/styles/navigation-styles.js.map +1 -1
  290. package/build-module/navigator/index.js +6 -6
  291. package/build-module/navigator/index.js.map +1 -1
  292. package/build-module/navigator/navigator-back-button/hook.js +1 -1
  293. package/build-module/navigator/navigator-back-button/hook.js.map +1 -1
  294. package/build-module/navigator/navigator-button/hook.js +1 -1
  295. package/build-module/navigator/navigator-button/hook.js.map +1 -1
  296. package/build-module/navigator/navigator-provider/component.js +99 -67
  297. package/build-module/navigator/navigator-provider/component.js.map +1 -1
  298. package/build-module/navigator/navigator-screen/component.js +4 -0
  299. package/build-module/navigator/navigator-screen/component.js.map +1 -1
  300. package/build-module/navigator/navigator-to-parent-button/component.js +1 -1
  301. package/build-module/navigator/navigator-to-parent-button/component.js.map +1 -1
  302. package/build-module/navigator/types.js.map +1 -1
  303. package/build-module/navigator/use-navigator.js +1 -2
  304. package/build-module/navigator/use-navigator.js.map +1 -1
  305. package/build-module/palette-edit/index.js +2 -2
  306. package/build-module/palette-edit/index.js.map +1 -1
  307. package/build-module/private-apis.js +1 -14
  308. package/build-module/private-apis.js.map +1 -1
  309. package/build-module/range-control/styles/range-control-styles.js +31 -31
  310. package/build-module/range-control/styles/range-control-styles.js.map +1 -1
  311. package/build-module/resizable-box/resize-tooltip/styles/resize-tooltip.styles.js +5 -5
  312. package/build-module/resizable-box/resize-tooltip/styles/resize-tooltip.styles.js.map +1 -1
  313. package/build-module/select-control/styles/select-control-styles.js +13 -13
  314. package/build-module/select-control/styles/select-control-styles.js.map +1 -1
  315. package/build-module/slot-fill/bubbles-virtually/fill.js +4 -4
  316. package/build-module/slot-fill/bubbles-virtually/fill.js.map +1 -1
  317. package/build-module/slot-fill/index.js +1 -0
  318. package/build-module/slot-fill/index.js.map +1 -1
  319. package/build-module/snackbar/index.js +4 -4
  320. package/build-module/snackbar/index.js.map +1 -1
  321. package/build-module/tabs/index.js +4 -4
  322. package/build-module/tabs/index.js.map +1 -1
  323. package/build-module/tabs/styles.js +4 -4
  324. package/build-module/tabs/styles.js.map +1 -1
  325. package/build-module/tabs/tablist.js +5 -4
  326. package/build-module/tabs/tablist.js.map +1 -1
  327. package/build-module/toggle-group-control/toggle-group-control/utils.js +6 -6
  328. package/build-module/toggle-group-control/toggle-group-control/utils.js.map +1 -1
  329. package/build-module/tools-panel/tools-panel/hook.js +6 -6
  330. package/build-module/tools-panel/tools-panel/hook.js.map +1 -1
  331. package/build-module/unit-control/styles/unit-control-styles.js +7 -7
  332. package/build-module/unit-control/styles/unit-control-styles.js.map +1 -1
  333. package/build-module/utils/config-values.js +6 -4
  334. package/build-module/utils/config-values.js.map +1 -1
  335. package/build-module/utils/element-rect.js +74 -105
  336. package/build-module/utils/element-rect.js.map +1 -1
  337. package/build-module/utils/hooks/use-update-effect.js +4 -4
  338. package/build-module/utils/hooks/use-update-effect.js.map +1 -1
  339. package/build-style/style-rtl.css +11 -27
  340. package/build-style/style.css +11 -27
  341. package/build-types/alignment-matrix-control/cell.d.ts +1 -1
  342. package/build-types/alignment-matrix-control/cell.d.ts.map +1 -1
  343. package/build-types/alignment-matrix-control/icon.d.ts +1 -1
  344. package/build-types/alignment-matrix-control/icon.d.ts.map +1 -1
  345. package/build-types/alignment-matrix-control/index.d.ts +16 -6
  346. package/build-types/alignment-matrix-control/index.d.ts.map +1 -1
  347. package/build-types/alignment-matrix-control/stories/index.story.d.ts.map +1 -1
  348. package/build-types/alignment-matrix-control/{styles/alignment-matrix-control-styles.d.ts → styles.d.ts} +9 -10
  349. package/build-types/alignment-matrix-control/styles.d.ts.map +1 -0
  350. package/build-types/alignment-matrix-control/types.d.ts +12 -1
  351. package/build-types/alignment-matrix-control/types.d.ts.map +1 -1
  352. package/build-types/angle-picker-control/angle-circle.d.ts.map +1 -1
  353. package/build-types/border-control/border-control/component.d.ts.map +1 -1
  354. package/build-types/box-control/stories/index.story.d.ts.map +1 -1
  355. package/build-types/circular-option-picker/circular-option-picker-option.d.ts.map +1 -1
  356. package/build-types/circular-option-picker/circular-option-picker.d.ts.map +1 -1
  357. package/build-types/circular-option-picker/types.d.ts +2 -2
  358. package/build-types/circular-option-picker/types.d.ts.map +1 -1
  359. package/build-types/color-palette/utils.d.ts.map +1 -1
  360. package/build-types/color-picker/color-copy-button.d.ts.map +1 -1
  361. package/build-types/color-picker/hex-input.d.ts.map +1 -1
  362. package/build-types/color-picker/input-with-slider.d.ts.map +1 -1
  363. package/build-types/color-picker/styles.d.ts.map +1 -1
  364. package/build-types/combobox-control/types.d.ts +1 -0
  365. package/build-types/combobox-control/types.d.ts.map +1 -1
  366. package/build-types/composite/context.d.ts.map +1 -1
  367. package/build-types/composite/group-label.d.ts +3 -0
  368. package/build-types/composite/group-label.d.ts.map +1 -0
  369. package/build-types/composite/group.d.ts +3 -0
  370. package/build-types/composite/group.d.ts.map +1 -0
  371. package/build-types/composite/hover.d.ts +3 -0
  372. package/build-types/composite/hover.d.ts.map +1 -0
  373. package/build-types/composite/index.d.ts +63 -47
  374. package/build-types/composite/index.d.ts.map +1 -1
  375. package/build-types/composite/item.d.ts +3 -0
  376. package/build-types/composite/item.d.ts.map +1 -0
  377. package/build-types/composite/legacy/index.d.ts +23 -3
  378. package/build-types/composite/legacy/index.d.ts.map +1 -1
  379. package/build-types/composite/legacy/stories/index.story.d.ts.map +1 -1
  380. package/build-types/composite/row.d.ts +3 -0
  381. package/build-types/composite/row.d.ts.map +1 -0
  382. package/build-types/composite/stories/index.story.d.ts +9 -8
  383. package/build-types/composite/stories/index.story.d.ts.map +1 -1
  384. package/build-types/composite/typeahead.d.ts +3 -0
  385. package/build-types/composite/typeahead.d.ts.map +1 -0
  386. package/build-types/composite/types.d.ts +12 -11
  387. package/build-types/composite/types.d.ts.map +1 -1
  388. package/build-types/date-time/date/index.d.ts +0 -3
  389. package/build-types/date-time/date/index.d.ts.map +1 -1
  390. package/build-types/date-time/date/styles.d.ts.map +1 -1
  391. package/build-types/date-time/date/test/use-lilius.d.ts +2 -0
  392. package/build-types/date-time/date/test/use-lilius.d.ts.map +1 -0
  393. package/build-types/date-time/date/use-lilius/index.d.ts +169 -0
  394. package/build-types/date-time/date/use-lilius/index.d.ts.map +1 -0
  395. package/build-types/date-time/time/time-input/index.d.ts.map +1 -1
  396. package/build-types/dimension-control/index.d.ts +1 -1
  397. package/build-types/dimension-control/index.d.ts.map +1 -1
  398. package/build-types/dimension-control/stories/index.story.d.ts +5 -0
  399. package/build-types/dimension-control/stories/index.story.d.ts.map +1 -1
  400. package/build-types/dropdown-menu-v2/checkbox-item.d.ts +3 -0
  401. package/build-types/dropdown-menu-v2/checkbox-item.d.ts.map +1 -0
  402. package/build-types/dropdown-menu-v2/context.d.ts +6 -0
  403. package/build-types/dropdown-menu-v2/context.d.ts.map +1 -0
  404. package/build-types/dropdown-menu-v2/group-label.d.ts +3 -0
  405. package/build-types/dropdown-menu-v2/group-label.d.ts.map +1 -0
  406. package/build-types/dropdown-menu-v2/group.d.ts +3 -0
  407. package/build-types/dropdown-menu-v2/group.d.ts.map +1 -0
  408. package/build-types/dropdown-menu-v2/index.d.ts +39 -18
  409. package/build-types/dropdown-menu-v2/index.d.ts.map +1 -1
  410. package/build-types/dropdown-menu-v2/item-help-text.d.ts +6 -0
  411. package/build-types/dropdown-menu-v2/item-help-text.d.ts.map +1 -0
  412. package/build-types/dropdown-menu-v2/item-label.d.ts +6 -0
  413. package/build-types/dropdown-menu-v2/item-label.d.ts.map +1 -0
  414. package/build-types/dropdown-menu-v2/item.d.ts +3 -0
  415. package/build-types/dropdown-menu-v2/item.d.ts.map +1 -0
  416. package/build-types/dropdown-menu-v2/radio-item.d.ts +3 -0
  417. package/build-types/dropdown-menu-v2/radio-item.d.ts.map +1 -0
  418. package/build-types/dropdown-menu-v2/separator.d.ts +3 -0
  419. package/build-types/dropdown-menu-v2/separator.d.ts.map +1 -0
  420. package/build-types/dropdown-menu-v2/stories/index.story.d.ts +10 -10
  421. package/build-types/dropdown-menu-v2/stories/index.story.d.ts.map +1 -1
  422. package/build-types/dropdown-menu-v2/styles.d.ts +14 -6
  423. package/build-types/dropdown-menu-v2/styles.d.ts.map +1 -1
  424. package/build-types/dropdown-menu-v2/types.d.ts +6 -0
  425. package/build-types/dropdown-menu-v2/types.d.ts.map +1 -1
  426. package/build-types/dropdown-menu-v2/use-temporary-focus-visible-fix.d.ts +8 -0
  427. package/build-types/dropdown-menu-v2/use-temporary-focus-visible-fix.d.ts.map +1 -0
  428. package/build-types/focal-point-picker/styles/focal-point-style.d.ts.map +1 -1
  429. package/build-types/form-token-field/types.d.ts +1 -0
  430. package/build-types/form-token-field/types.d.ts.map +1 -1
  431. package/build-types/index.d.ts +4 -1
  432. package/build-types/index.d.ts.map +1 -1
  433. package/build-types/input-control/input-base.d.ts.map +1 -1
  434. package/build-types/input-control/input-prefix-wrapper.d.ts +2 -2
  435. package/build-types/input-control/input-prefix-wrapper.d.ts.map +1 -1
  436. package/build-types/input-control/input-suffix-wrapper.d.ts +2 -2
  437. package/build-types/input-control/input-suffix-wrapper.d.ts.map +1 -1
  438. package/build-types/input-control/reducer/reducer.d.ts.map +1 -1
  439. package/build-types/input-control/stories/index.story.d.ts +9 -0
  440. package/build-types/input-control/stories/index.story.d.ts.map +1 -1
  441. package/build-types/input-control/styles/input-control-styles.d.ts +15 -9
  442. package/build-types/input-control/styles/input-control-styles.d.ts.map +1 -1
  443. package/build-types/input-control/types.d.ts +23 -6
  444. package/build-types/input-control/types.d.ts.map +1 -1
  445. package/build-types/modal/index.d.ts.map +1 -1
  446. package/build-types/modal/stories/index.story.d.ts +3 -0
  447. package/build-types/modal/stories/index.story.d.ts.map +1 -1
  448. package/build-types/navigation/styles/navigation-styles.d.ts.map +1 -1
  449. package/build-types/navigator/index.d.ts +6 -6
  450. package/build-types/navigator/index.d.ts.map +1 -1
  451. package/build-types/navigator/navigator-provider/component.d.ts.map +1 -1
  452. package/build-types/navigator/navigator-screen/component.d.ts.map +1 -1
  453. package/build-types/navigator/stories/index.story.d.ts +1 -1
  454. package/build-types/navigator/stories/index.story.d.ts.map +1 -1
  455. package/build-types/navigator/types.d.ts +3 -1
  456. package/build-types/navigator/types.d.ts.map +1 -1
  457. package/build-types/navigator/use-navigator.d.ts +1 -2
  458. package/build-types/navigator/use-navigator.d.ts.map +1 -1
  459. package/build-types/private-apis.d.ts.map +1 -1
  460. package/build-types/range-control/styles/range-control-styles.d.ts.map +1 -1
  461. package/build-types/resizable-box/resize-tooltip/styles/resize-tooltip.styles.d.ts.map +1 -1
  462. package/build-types/select-control/styles/select-control-styles.d.ts +1 -1
  463. package/build-types/select-control/styles/select-control-styles.d.ts.map +1 -1
  464. package/build-types/slot-fill/index.d.ts +3 -0
  465. package/build-types/slot-fill/index.d.ts.map +1 -1
  466. package/build-types/tabs/index.d.ts.map +1 -1
  467. package/build-types/tabs/styles.d.ts.map +1 -1
  468. package/build-types/tabs/tablist.d.ts.map +1 -1
  469. package/build-types/unit-control/styles/unit-control-styles.d.ts.map +1 -1
  470. package/build-types/utils/config-values.d.ts +3 -3
  471. package/build-types/utils/element-rect.d.ts +32 -74
  472. package/build-types/utils/element-rect.d.ts.map +1 -1
  473. package/package.json +19 -20
  474. package/src/alignment-matrix-control/README.md +1 -5
  475. package/src/alignment-matrix-control/cell.tsx +3 -9
  476. package/src/alignment-matrix-control/icon.tsx +48 -30
  477. package/src/alignment-matrix-control/index.tsx +60 -50
  478. package/src/alignment-matrix-control/stories/index.story.tsx +3 -12
  479. package/src/alignment-matrix-control/styles.ts +113 -0
  480. package/src/alignment-matrix-control/types.ts +12 -1
  481. package/src/angle-picker-control/angle-circle.tsx +11 -9
  482. package/src/border-control/border-control/component.tsx +23 -16
  483. package/src/circular-option-picker/circular-option-picker-option.tsx +16 -19
  484. package/src/circular-option-picker/circular-option-picker.tsx +26 -12
  485. package/src/circular-option-picker/types.ts +2 -2
  486. package/src/clipboard-button/index.tsx +6 -6
  487. package/src/color-palette/test/utils.ts +21 -2
  488. package/src/color-palette/utils.ts +1 -3
  489. package/src/color-picker/color-copy-button.tsx +10 -8
  490. package/src/color-picker/hex-input.tsx +6 -10
  491. package/src/color-picker/input-with-slider.tsx +6 -10
  492. package/src/color-picker/styles.ts +1 -1
  493. package/src/combobox-control/types.ts +1 -0
  494. package/src/composite/README.md +5 -24
  495. package/src/composite/{context.ts → context.tsx} +1 -2
  496. package/src/composite/group-label.tsx +30 -0
  497. package/src/composite/group.tsx +30 -0
  498. package/src/composite/hover.tsx +30 -0
  499. package/src/composite/index.tsx +71 -166
  500. package/src/composite/item.tsx +30 -0
  501. package/src/composite/legacy/index.tsx +73 -11
  502. package/src/composite/legacy/stories/index.story.tsx +2 -1
  503. package/src/composite/legacy/test/index.tsx +57 -1
  504. package/src/composite/row.tsx +30 -0
  505. package/src/composite/stories/index.story.tsx +254 -365
  506. package/src/composite/typeahead.tsx +30 -0
  507. package/src/composite/types.ts +14 -16
  508. package/src/custom-gradient-picker/gradient-bar/control-points.tsx +10 -10
  509. package/src/custom-gradient-picker/style.scss +2 -21
  510. package/src/custom-select-control-v2/styles.ts +4 -4
  511. package/src/date-time/date/index.tsx +1 -1
  512. package/src/date-time/date/styles.ts +33 -13
  513. package/src/date-time/date/test/use-lilius.ts +417 -0
  514. package/src/date-time/date/use-lilius/index.ts +394 -0
  515. package/src/date-time/time/test/index.tsx +3 -6
  516. package/src/date-time/time/time-input/index.tsx +25 -25
  517. package/src/date-time/time/time-input/test/index.tsx +6 -7
  518. package/src/dimension-control/README.md +4 -0
  519. package/src/dimension-control/index.tsx +7 -1
  520. package/src/dimension-control/stories/index.story.tsx +7 -2
  521. package/src/dimension-control/test/__snapshots__/index.test.js.snap +16 -16
  522. package/src/dimension-control/test/index.test.js +1 -0
  523. package/src/draggable/index.tsx +4 -4
  524. package/src/dropdown-menu-v2/README.md +73 -60
  525. package/src/dropdown-menu-v2/checkbox-item.tsx +63 -0
  526. package/src/dropdown-menu-v2/context.tsx +13 -0
  527. package/src/dropdown-menu-v2/group-label.tsx +37 -0
  528. package/src/dropdown-menu-v2/group.tsx +26 -0
  529. package/src/dropdown-menu-v2/index.tsx +57 -197
  530. package/src/dropdown-menu-v2/item-help-text.tsx +23 -0
  531. package/src/dropdown-menu-v2/item-label.tsx +23 -0
  532. package/src/dropdown-menu-v2/item.tsx +50 -0
  533. package/src/dropdown-menu-v2/radio-item.tsx +70 -0
  534. package/src/dropdown-menu-v2/separator.tsx +27 -0
  535. package/src/dropdown-menu-v2/stories/index.story.tsx +295 -262
  536. package/src/dropdown-menu-v2/styles.ts +102 -66
  537. package/src/dropdown-menu-v2/test/index.tsx +159 -132
  538. package/src/dropdown-menu-v2/types.ts +7 -0
  539. package/src/dropdown-menu-v2/use-temporary-focus-visible-fix.ts +22 -0
  540. package/src/focal-point-picker/styles/focal-point-style.ts +6 -1
  541. package/src/form-toggle/style.scss +1 -1
  542. package/src/form-token-field/style.scss +2 -3
  543. package/src/form-token-field/types.ts +1 -0
  544. package/src/index.ts +6 -1
  545. package/src/input-control/index.tsx +2 -2
  546. package/src/input-control/input-base.tsx +4 -14
  547. package/src/input-control/input-prefix-wrapper.tsx +8 -4
  548. package/src/input-control/input-suffix-wrapper.tsx +4 -6
  549. package/src/input-control/reducer/reducer.ts +13 -10
  550. package/src/input-control/stories/index.story.tsx +31 -12
  551. package/src/input-control/styles/input-control-styles.tsx +42 -11
  552. package/src/input-control/types.ts +23 -7
  553. package/src/input-control/utils.ts +3 -3
  554. package/src/item-group/styles.ts +3 -3
  555. package/src/item-group/test/__snapshots__/index.js.snap +3 -3
  556. package/src/modal/index.tsx +21 -12
  557. package/src/modal/stories/index.story.tsx +8 -14
  558. package/src/modal/style.scss +5 -9
  559. package/src/navigation/index.tsx +4 -4
  560. package/src/navigation/styles/navigation-styles.tsx +3 -3
  561. package/src/navigator/index.ts +6 -6
  562. package/src/navigator/navigator-back-button/hook.ts +1 -1
  563. package/src/navigator/navigator-button/hook.ts +1 -1
  564. package/src/navigator/navigator-provider/README.md +2 -3
  565. package/src/navigator/navigator-provider/component.tsx +97 -82
  566. package/src/navigator/navigator-screen/component.tsx +7 -0
  567. package/src/navigator/navigator-to-parent-button/component.tsx +1 -1
  568. package/src/navigator/stories/index.story.tsx +82 -253
  569. package/src/navigator/test/index.tsx +8 -0
  570. package/src/navigator/types.ts +3 -1
  571. package/src/navigator/use-navigator.ts +1 -3
  572. package/src/palette-edit/index.tsx +2 -2
  573. package/src/private-apis.ts +1 -23
  574. package/src/range-control/styles/range-control-styles.ts +7 -7
  575. package/src/resizable-box/resize-tooltip/styles/resize-tooltip.styles.ts +2 -2
  576. package/src/resizable-box/style.scss +2 -2
  577. package/src/select-control/README.md +2 -2
  578. package/src/select-control/styles/select-control-styles.ts +5 -5
  579. package/src/slot-fill/bubbles-virtually/fill.tsx +4 -4
  580. package/src/slot-fill/index.tsx +1 -0
  581. package/src/snackbar/index.tsx +4 -4
  582. package/src/tab-panel/style.scss +0 -1
  583. package/src/tabs/index.tsx +8 -4
  584. package/src/tabs/styles.ts +42 -14
  585. package/src/tabs/tablist.tsx +5 -4
  586. package/src/text-control/style.scss +3 -2
  587. package/src/toggle-group-control/toggle-group-control/utils.ts +7 -7
  588. package/src/tools-panel/tools-panel/hook.ts +6 -6
  589. package/src/unit-control/styles/unit-control-styles.ts +2 -1
  590. package/src/utils/config-values.js +6 -4
  591. package/src/utils/element-rect.ts +93 -130
  592. package/src/utils/hooks/use-update-effect.js +4 -4
  593. package/tsconfig.tsbuildinfo +1 -1
  594. package/build/alignment-matrix-control/styles/alignment-matrix-control-icon-styles.js +0 -66
  595. package/build/alignment-matrix-control/styles/alignment-matrix-control-icon-styles.js.map +0 -1
  596. package/build/alignment-matrix-control/styles/alignment-matrix-control-styles.js +0 -77
  597. package/build/alignment-matrix-control/styles/alignment-matrix-control-styles.js.map +0 -1
  598. package/build/navigator/navigator-back-button/index.js +0 -14
  599. package/build/navigator/navigator-back-button/index.js.map +0 -1
  600. package/build/navigator/navigator-button/index.js +0 -14
  601. package/build/navigator/navigator-button/index.js.map +0 -1
  602. package/build/navigator/navigator-provider/index.js +0 -14
  603. package/build/navigator/navigator-provider/index.js.map +0 -1
  604. package/build/navigator/navigator-screen/index.js +0 -14
  605. package/build/navigator/navigator-screen/index.js.map +0 -1
  606. package/build/navigator/navigator-to-parent-button/index.js +0 -14
  607. package/build/navigator/navigator-to-parent-button/index.js.map +0 -1
  608. package/build-module/alignment-matrix-control/styles/alignment-matrix-control-icon-styles.js +0 -63
  609. package/build-module/alignment-matrix-control/styles/alignment-matrix-control-icon-styles.js.map +0 -1
  610. package/build-module/alignment-matrix-control/styles/alignment-matrix-control-styles.js +0 -72
  611. package/build-module/alignment-matrix-control/styles/alignment-matrix-control-styles.js.map +0 -1
  612. package/build-module/navigator/navigator-back-button/index.js +0 -2
  613. package/build-module/navigator/navigator-back-button/index.js.map +0 -1
  614. package/build-module/navigator/navigator-button/index.js +0 -2
  615. package/build-module/navigator/navigator-button/index.js.map +0 -1
  616. package/build-module/navigator/navigator-provider/index.js +0 -2
  617. package/build-module/navigator/navigator-provider/index.js.map +0 -1
  618. package/build-module/navigator/navigator-screen/index.js +0 -2
  619. package/build-module/navigator/navigator-screen/index.js.map +0 -1
  620. package/build-module/navigator/navigator-to-parent-button/index.js +0 -2
  621. package/build-module/navigator/navigator-to-parent-button/index.js.map +0 -1
  622. package/build-types/alignment-matrix-control/styles/alignment-matrix-control-icon-styles.d.ts +0 -18
  623. package/build-types/alignment-matrix-control/styles/alignment-matrix-control-icon-styles.d.ts.map +0 -1
  624. package/build-types/alignment-matrix-control/styles/alignment-matrix-control-styles.d.ts.map +0 -1
  625. package/build-types/composite/stories/utils.d.ts +0 -29
  626. package/build-types/composite/stories/utils.d.ts.map +0 -1
  627. package/build-types/navigator/navigator-back-button/index.d.ts +0 -2
  628. package/build-types/navigator/navigator-back-button/index.d.ts.map +0 -1
  629. package/build-types/navigator/navigator-button/index.d.ts +0 -2
  630. package/build-types/navigator/navigator-button/index.d.ts.map +0 -1
  631. package/build-types/navigator/navigator-provider/index.d.ts +0 -2
  632. package/build-types/navigator/navigator-provider/index.d.ts.map +0 -1
  633. package/build-types/navigator/navigator-screen/index.d.ts +0 -2
  634. package/build-types/navigator/navigator-screen/index.d.ts.map +0 -1
  635. package/build-types/navigator/navigator-to-parent-button/index.d.ts +0 -2
  636. package/build-types/navigator/navigator-to-parent-button/index.d.ts.map +0 -1
  637. package/src/alignment-matrix-control/styles/alignment-matrix-control-icon-styles.ts +0 -77
  638. package/src/alignment-matrix-control/styles/alignment-matrix-control-styles.ts +0 -102
  639. package/src/composite/stories/utils.tsx +0 -76
  640. package/src/navigator/navigator-back-button/index.ts +0 -1
  641. package/src/navigator/navigator-button/index.ts +0 -1
  642. package/src/navigator/navigator-provider/index.ts +0 -1
  643. package/src/navigator/navigator-screen/index.ts +0 -1
  644. package/src/navigator/navigator-to-parent-button/index.ts +0 -1
@@ -0,0 +1,394 @@
1
+ /**
2
+ * This source is a local copy of the use-lilius library, since the original
3
+ * library is not actively maintained.
4
+ * @see https://github.com/WordPress/gutenberg/discussions/64968
5
+ *
6
+ * use-lilius@2.0.5
7
+ * https://github.com/Avarios/use-lilius
8
+ *
9
+ * The MIT License (MIT)
10
+ *
11
+ * Copyright (c) 2021-Present Danny Tatom
12
+ *
13
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
14
+ * of this software and associated documentation files (the "Software"), to deal
15
+ * in the Software without restriction, including without limitation the rights
16
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
17
+ * copies of the Software, and to permit persons to whom the Software is
18
+ * furnished to do so, subject to the following conditions:
19
+ *
20
+ * The above copyright notice and this permission notice shall be included in all
21
+ * copies or substantial portions of the Software.
22
+ *
23
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
24
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
25
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
26
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
27
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
28
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
29
+ * SOFTWARE.
30
+ */
31
+
32
+ /**
33
+ * External dependencies
34
+ */
35
+ import {
36
+ addMonths,
37
+ addYears,
38
+ eachDayOfInterval,
39
+ eachMonthOfInterval,
40
+ eachWeekOfInterval,
41
+ endOfMonth,
42
+ endOfWeek,
43
+ isAfter,
44
+ isBefore,
45
+ isEqual,
46
+ set,
47
+ setMonth,
48
+ setYear,
49
+ startOfMonth,
50
+ startOfToday,
51
+ startOfWeek,
52
+ subMonths,
53
+ subYears,
54
+ } from 'date-fns';
55
+
56
+ /**
57
+ * WordPress dependencies
58
+ */
59
+ import { useCallback, useMemo, useState } from '@wordpress/element';
60
+
61
+ export enum Month {
62
+ JANUARY,
63
+ FEBRUARY,
64
+ MARCH,
65
+ APRIL,
66
+ MAY,
67
+ JUNE,
68
+ JULY,
69
+ AUGUST,
70
+ SEPTEMBER,
71
+ OCTOBER,
72
+ NOVEMBER,
73
+ DECEMBER,
74
+ }
75
+
76
+ export enum Day {
77
+ SUNDAY,
78
+ MONDAY,
79
+ TUESDAY,
80
+ WEDNESDAY,
81
+ THURSDAY,
82
+ FRIDAY,
83
+ SATURDAY,
84
+ }
85
+
86
+ export interface Options {
87
+ /**
88
+ * What day a week starts on within the calendar matrix.
89
+ *
90
+ * @default Day.SUNDAY
91
+ */
92
+ weekStartsOn?: Day;
93
+
94
+ /**
95
+ * The initial viewing date.
96
+ *
97
+ * @default new Date()
98
+ */
99
+ viewing?: Date;
100
+
101
+ /**
102
+ * The initial date(s) selection.
103
+ *
104
+ * @default []
105
+ */
106
+ selected?: Date[];
107
+
108
+ /**
109
+ * The number of months in the calendar.
110
+ *
111
+ * @default 1
112
+ */
113
+ numberOfMonths?: number;
114
+ }
115
+
116
+ export interface Returns {
117
+ /**
118
+ * Returns a copy of the given date with the time set to 00:00:00:00.
119
+ */
120
+ clearTime: ( date: Date ) => Date;
121
+
122
+ /**
123
+ * Returns whether or not a date is between 2 other dates (inclusive).
124
+ */
125
+ inRange: ( date: Date, min: Date, max: Date ) => boolean;
126
+
127
+ /**
128
+ * The date represented in the calendar matrix. Note that
129
+ * the month and year are the only parts used.
130
+ */
131
+ viewing: Date;
132
+
133
+ /**
134
+ * Set the date represented in the calendar matrix. Note that
135
+ * the month and year are the only parts used.
136
+ */
137
+ setViewing: React.Dispatch< React.SetStateAction< Date > >;
138
+
139
+ /**
140
+ * Set the viewing date to today.
141
+ */
142
+ viewToday: () => void;
143
+
144
+ /**
145
+ * Set the viewing date to the given month.
146
+ */
147
+ viewMonth: ( month: Month ) => void;
148
+
149
+ /**
150
+ * Set the viewing date to the month before the current.
151
+ */
152
+ viewPreviousMonth: () => void;
153
+
154
+ /**
155
+ * Set the viewing date to the month after the current.
156
+ */
157
+ viewNextMonth: () => void;
158
+
159
+ /**
160
+ * Set the viewing date to the given year.
161
+ */
162
+ viewYear: ( year: number ) => void;
163
+
164
+ /**
165
+ * Set the viewing date to the year before the current.
166
+ */
167
+ viewPreviousYear: () => void;
168
+
169
+ /**
170
+ * Set the viewing date to the year after the current.
171
+ */
172
+ viewNextYear: () => void;
173
+
174
+ /**
175
+ * The dates currently selected.
176
+ */
177
+ selected: Date[];
178
+
179
+ /**
180
+ * Override the currently selected dates.
181
+ */
182
+ setSelected: React.Dispatch< React.SetStateAction< Date[] > >;
183
+
184
+ /**
185
+ * Reset the selected dates to [].
186
+ */
187
+ clearSelected: () => void;
188
+
189
+ /**
190
+ * Determine whether or not a date has been selected.
191
+ */
192
+ isSelected: ( date: Date ) => boolean;
193
+
194
+ /**
195
+ * Select one or more dates.
196
+ */
197
+ select: ( date: Date | Date[], replaceExisting?: boolean ) => void;
198
+
199
+ /**
200
+ * Deselect one or more dates.
201
+ */
202
+ deselect: ( date: Date | Date[] ) => void;
203
+
204
+ /**
205
+ * Toggle the selection of a date.
206
+ */
207
+ toggle: ( date: Date, replaceExisting?: boolean ) => void;
208
+
209
+ /**
210
+ * Select a range of dates (inclusive).
211
+ */
212
+ selectRange: ( start: Date, end: Date, replaceExisting?: boolean ) => void;
213
+
214
+ /**
215
+ * Deselect a range of dates (inclusive).
216
+ */
217
+ deselectRange: ( start: Date, end: Date ) => void;
218
+
219
+ /**
220
+ * A matrix of days based on the current viewing date.
221
+ */
222
+ calendar: Date[][][];
223
+ }
224
+
225
+ const inRange = ( date: Date, min: Date, max: Date ) =>
226
+ ( isEqual( date, min ) || isAfter( date, min ) ) &&
227
+ ( isEqual( date, max ) || isBefore( date, max ) );
228
+
229
+ const clearTime = ( date: Date ) =>
230
+ set( date, { hours: 0, minutes: 0, seconds: 0, milliseconds: 0 } );
231
+
232
+ export const useLilius = ( {
233
+ weekStartsOn = Day.SUNDAY,
234
+ viewing: initialViewing = new Date(),
235
+ selected: initialSelected = [],
236
+ numberOfMonths = 1,
237
+ }: Options = {} ): Returns => {
238
+ const [ viewing, setViewing ] = useState< Date >( initialViewing );
239
+
240
+ const viewToday = useCallback(
241
+ () => setViewing( startOfToday() ),
242
+ [ setViewing ]
243
+ );
244
+
245
+ const viewMonth = useCallback(
246
+ ( month: Month ) => setViewing( ( v ) => setMonth( v, month ) ),
247
+ []
248
+ );
249
+
250
+ const viewPreviousMonth = useCallback(
251
+ () => setViewing( ( v ) => subMonths( v, 1 ) ),
252
+ []
253
+ );
254
+
255
+ const viewNextMonth = useCallback(
256
+ () => setViewing( ( v ) => addMonths( v, 1 ) ),
257
+ []
258
+ );
259
+
260
+ const viewYear = useCallback(
261
+ ( year: number ) => setViewing( ( v ) => setYear( v, year ) ),
262
+ []
263
+ );
264
+
265
+ const viewPreviousYear = useCallback(
266
+ () => setViewing( ( v ) => subYears( v, 1 ) ),
267
+ []
268
+ );
269
+
270
+ const viewNextYear = useCallback(
271
+ () => setViewing( ( v ) => addYears( v, 1 ) ),
272
+ []
273
+ );
274
+
275
+ const [ selected, setSelected ] = useState< Date[] >(
276
+ initialSelected.map( clearTime )
277
+ );
278
+
279
+ const clearSelected = () => setSelected( [] );
280
+
281
+ const isSelected = useCallback(
282
+ ( date: Date ) =>
283
+ selected.findIndex( ( s ) => isEqual( s, date ) ) > -1,
284
+ [ selected ]
285
+ );
286
+
287
+ const select = useCallback(
288
+ ( date: Date | Date[], replaceExisting?: boolean ) => {
289
+ if ( replaceExisting ) {
290
+ setSelected( Array.isArray( date ) ? date : [ date ] );
291
+ } else {
292
+ setSelected( ( selectedItems ) =>
293
+ selectedItems.concat(
294
+ Array.isArray( date ) ? date : [ date ]
295
+ )
296
+ );
297
+ }
298
+ },
299
+ []
300
+ );
301
+
302
+ const deselect = useCallback(
303
+ ( date: Date | Date[] ) =>
304
+ setSelected( ( selectedItems ) =>
305
+ Array.isArray( date )
306
+ ? selectedItems.filter(
307
+ ( s ) =>
308
+ ! date
309
+ .map( ( d ) => d.getTime() )
310
+ .includes( s.getTime() )
311
+ )
312
+ : selectedItems.filter( ( s ) => ! isEqual( s, date ) )
313
+ ),
314
+ []
315
+ );
316
+
317
+ const toggle = useCallback(
318
+ ( date: Date, replaceExisting?: boolean ) =>
319
+ isSelected( date )
320
+ ? deselect( date )
321
+ : select( date, replaceExisting ),
322
+ [ deselect, isSelected, select ]
323
+ );
324
+
325
+ const selectRange = useCallback(
326
+ ( start: Date, end: Date, replaceExisting?: boolean ) => {
327
+ if ( replaceExisting ) {
328
+ setSelected( eachDayOfInterval( { start, end } ) );
329
+ } else {
330
+ setSelected( ( selectedItems ) =>
331
+ selectedItems.concat( eachDayOfInterval( { start, end } ) )
332
+ );
333
+ }
334
+ },
335
+ []
336
+ );
337
+
338
+ const deselectRange = useCallback( ( start: Date, end: Date ) => {
339
+ setSelected( ( selectedItems ) =>
340
+ selectedItems.filter(
341
+ ( s ) =>
342
+ ! eachDayOfInterval( { start, end } )
343
+ .map( ( d ) => d.getTime() )
344
+ .includes( s.getTime() )
345
+ )
346
+ );
347
+ }, [] );
348
+
349
+ const calendar = useMemo< Date[][][] >(
350
+ () =>
351
+ eachMonthOfInterval( {
352
+ start: startOfMonth( viewing ),
353
+ end: endOfMonth( addMonths( viewing, numberOfMonths - 1 ) ),
354
+ } ).map( ( month ) =>
355
+ eachWeekOfInterval(
356
+ {
357
+ start: startOfMonth( month ),
358
+ end: endOfMonth( month ),
359
+ },
360
+ { weekStartsOn }
361
+ ).map( ( week ) =>
362
+ eachDayOfInterval( {
363
+ start: startOfWeek( week, { weekStartsOn } ),
364
+ end: endOfWeek( week, { weekStartsOn } ),
365
+ } )
366
+ )
367
+ ),
368
+ [ viewing, weekStartsOn, numberOfMonths ]
369
+ );
370
+
371
+ return {
372
+ clearTime,
373
+ inRange,
374
+ viewing,
375
+ setViewing,
376
+ viewToday,
377
+ viewMonth,
378
+ viewPreviousMonth,
379
+ viewNextMonth,
380
+ viewYear,
381
+ viewPreviousYear,
382
+ viewNextYear,
383
+ selected,
384
+ setSelected,
385
+ clearSelected,
386
+ isSelected,
387
+ select,
388
+ deselect,
389
+ toggle,
390
+ selectRange,
391
+ deselectRange,
392
+ calendar,
393
+ };
394
+ };
@@ -281,12 +281,9 @@ describe( 'TimePicker', () => {
281
281
  expect(
282
282
  ( screen.getByLabelText( 'Minutes' ) as HTMLInputElement ).value
283
283
  ).toBe( '00' );
284
- /**
285
- * This is not ideal, but best of we can do for now until we refactor
286
- * AM/PM into accessible elements, like radio buttons.
287
- */
288
- expect( screen.getByText( 'AM' ) ).not.toHaveClass( 'is-primary' );
289
- expect( screen.getByText( 'PM' ) ).toHaveClass( 'is-primary' );
284
+
285
+ expect( screen.getByRole( 'radio', { name: 'AM' } ) ).not.toBeChecked();
286
+ expect( screen.getByRole( 'radio', { name: 'PM' } ) ).toBeChecked();
290
287
  } );
291
288
 
292
289
  it( 'should have different layouts/orders for 12/24 hour formats', () => {
@@ -20,8 +20,6 @@ import {
20
20
  Fieldset,
21
21
  } from '../styles';
22
22
  import { HStack } from '../../../h-stack';
23
- import Button from '../../../button';
24
- import ButtonGroup from '../../../button-group';
25
23
  import {
26
24
  from12hTo24h,
27
25
  from24hTo12h,
@@ -32,6 +30,10 @@ import type { TimeInputProps } from '../../types';
32
30
  import type { InputChangeCallback } from '../../../input-control/types';
33
31
  import { useControlledValue } from '../../../utils';
34
32
  import BaseControl from '../../../base-control';
33
+ import {
34
+ ToggleGroupControl,
35
+ ToggleGroupControlOption,
36
+ } from '../../../toggle-group-control';
35
37
 
36
38
  export function TimeInput( {
37
39
  value: valueProp,
@@ -164,30 +166,28 @@ export function TimeInput( {
164
166
  />
165
167
  </TimeWrapper>
166
168
  { is12Hour && (
167
- <ButtonGroup
168
- className="components-datetime__time-field components-datetime__time-field-am-pm" // Unused, for backwards compatibility.
169
+ <ToggleGroupControl
170
+ __next40pxDefaultSize
171
+ __nextHasNoMarginBottom
172
+ isBlock
173
+ label={ __( 'Select AM or PM' ) }
174
+ hideLabelFromVision
175
+ value={ dayPeriod }
176
+ onChange={ ( newValue ) => {
177
+ buildAmPmChangeCallback(
178
+ newValue as 'AM' | 'PM'
179
+ )();
180
+ } }
169
181
  >
170
- <Button
171
- className="components-datetime__time-am-button" // Unused, for backwards compatibility.
172
- variant={
173
- dayPeriod === 'AM' ? 'primary' : 'secondary'
174
- }
175
- __next40pxDefaultSize
176
- onClick={ buildAmPmChangeCallback( 'AM' ) }
177
- >
178
- { __( 'AM' ) }
179
- </Button>
180
- <Button
181
- className="components-datetime__time-pm-button" // Unused, for backwards compatibility.
182
- variant={
183
- dayPeriod === 'PM' ? 'primary' : 'secondary'
184
- }
185
- __next40pxDefaultSize
186
- onClick={ buildAmPmChangeCallback( 'PM' ) }
187
- >
188
- { __( 'PM' ) }
189
- </Button>
190
- </ButtonGroup>
182
+ <ToggleGroupControlOption
183
+ value="AM"
184
+ label={ __( 'AM' ) }
185
+ />
186
+ <ToggleGroupControlOption
187
+ value="PM"
188
+ label={ __( 'PM' ) }
189
+ />
190
+ </ToggleGroupControl>
191
191
  ) }
192
192
  </HStack>
193
193
  </Wrapper>
@@ -80,12 +80,11 @@ describe( 'TimeInput', () => {
80
80
  const minutesInput = screen.getByRole( 'spinbutton', {
81
81
  name: 'Minutes',
82
82
  } );
83
- const amButton = screen.getByRole( 'button', { name: 'AM' } );
84
- const pmButton = screen.getByRole( 'button', { name: 'PM' } );
83
+ const amButton = screen.getByRole( 'radio', { name: 'AM' } );
84
+ const pmButton = screen.getByRole( 'radio', { name: 'PM' } );
85
85
 
86
- // TODO: Update assert these states through the accessibility tree rather than through styles, see: https://github.com/WordPress/gutenberg/issues/61163
87
- expect( amButton ).toHaveClass( 'is-primary' );
88
- expect( pmButton ).not.toHaveClass( 'is-primary' );
86
+ expect( amButton ).toBeChecked();
87
+ expect( pmButton ).not.toBeChecked();
89
88
  expect( hoursInput ).not.toHaveValue( 0 );
90
89
  expect( hoursInput ).toHaveValue( 12 );
91
90
 
@@ -94,7 +93,7 @@ describe( 'TimeInput', () => {
94
93
  await user.keyboard( '{Tab}' );
95
94
 
96
95
  expect( onChangeSpy ).toHaveBeenCalledWith( { hours: 0, minutes: 35 } );
97
- expect( amButton ).toHaveClass( 'is-primary' );
96
+ expect( amButton ).toBeChecked();
98
97
 
99
98
  await user.clear( hoursInput );
100
99
  await user.type( hoursInput, '12' );
@@ -107,7 +106,7 @@ describe( 'TimeInput', () => {
107
106
  hours: 12,
108
107
  minutes: 35,
109
108
  } );
110
- expect( pmButton ).toHaveClass( 'is-primary' );
109
+ expect( pmButton ).toBeChecked();
111
110
  } );
112
111
 
113
112
  it( 'should call onChange with defined minutes steps', async () => {
@@ -1,5 +1,9 @@
1
1
  # DimensionControl
2
2
 
3
+ <div class="callout callout-alert">
4
+ This component is deprecated.
5
+ </div>
6
+
3
7
  <div class="callout callout-alert">
4
8
  This feature is still experimental. “Experimental” means this is an early implementation subject to drastic and breaking changes.
5
9
  </div>
@@ -17,6 +17,7 @@ import sizesTable, { findSizeBySlug } from './sizes';
17
17
  import type { DimensionControlProps, Size } from './types';
18
18
  import type { SelectControlSingleSelectionProps } from '../select-control/types';
19
19
  import { ContextSystemProvider } from '../context';
20
+ import deprecated from '@wordpress/deprecated';
20
21
 
21
22
  const CONTEXT_VALUE = {
22
23
  BaseControl: {
@@ -29,7 +30,7 @@ const CONTEXT_VALUE = {
29
30
  /**
30
31
  * `DimensionControl` is a component designed to provide a UI to control spacing and/or dimensions.
31
32
  *
32
- * This feature is still experimental. “Experimental” means this is an early implementation subject to drastic and breaking changes.
33
+ * @deprecated
33
34
  *
34
35
  * ```jsx
35
36
  * import { __experimentalDimensionControl as DimensionControl } from '@wordpress/components';
@@ -62,6 +63,11 @@ export function DimensionControl( props: DimensionControlProps ) {
62
63
  className = '',
63
64
  } = props;
64
65
 
66
+ deprecated( 'wp.components.DimensionControl', {
67
+ since: '6.7',
68
+ version: '7.0',
69
+ } );
70
+
65
71
  const onChangeSpacingSize: SelectControlSingleSelectionProps[ 'onChange' ] =
66
72
  ( val ) => {
67
73
  const theSize = findSizeBySlug( sizes, val );
@@ -13,9 +13,15 @@ import sizes from '../sizes';
13
13
  */
14
14
  import { desktop, tablet, mobile } from '@wordpress/icons';
15
15
 
16
+ /**
17
+ * `DimensionControl` is a component designed to provide a UI to control spacing and/or dimensions.
18
+ *
19
+ * This component is deprecated.
20
+ */
16
21
  const meta: Meta< typeof DimensionControl > = {
17
22
  component: DimensionControl,
18
- title: 'Components (Experimental)/DimensionControl',
23
+ title: 'Components (Deprecated)/DimensionControl',
24
+ id: 'components-dimensioncontrol',
19
25
  argTypes: {
20
26
  onChange: { action: 'onChange' },
21
27
  value: { control: { type: null } },
@@ -42,7 +48,6 @@ const Template: StoryFn< typeof DimensionControl > = ( args ) => (
42
48
  );
43
49
 
44
50
  export const Default = Template.bind( {} );
45
-
46
51
  Default.args = {
47
52
  __nextHasNoMarginBottom: true,
48
53
  label: 'Please select a size',
@@ -45,7 +45,7 @@ exports[`DimensionControl rendering renders with custom sizes 1`] = `
45
45
  min-height: 0;
46
46
  }
47
47
 
48
- .emotion-6:focus-within:not( :has( :is( .em5sgkm7, .emotion-19 ):focus-within ) ) .emotion-26 {
48
+ .emotion-6:focus-within:not( :has( :is( .em5sgkm8, .emotion-19 ):focus-within ) ) .emotion-26 {
49
49
  border-color: var(--wp-components-color-accent, var(--wp-admin-theme-color, #3858e9));
50
50
  box-shadow: 0 0 0 0.5px var(--wp-components-color-accent, var(--wp-admin-theme-color, #3858e9));
51
51
  outline: 2px solid transparent;
@@ -157,8 +157,8 @@ exports[`DimensionControl rendering renders with custom sizes 1`] = `
157
157
  }
158
158
 
159
159
  .emotion-21 {
160
- margin-bottom: 0;
161
- padding-right: calc(4px * 2);
160
+ -webkit-padding-end: 8px;
161
+ padding-inline-end: 8px;
162
162
  position: absolute;
163
163
  pointer-events: none;
164
164
  right: 0;
@@ -249,7 +249,7 @@ exports[`DimensionControl rendering renders with custom sizes 1`] = `
249
249
  class="components-input-control__suffix emotion-18 emotion-19"
250
250
  >
251
251
  <div
252
- class="components-spacer components-input-control-suffix-wrapper emotion-20 emotion-21 emotion-7"
252
+ class="components-input-control-suffix-wrapper emotion-20 emotion-21 emotion-22"
253
253
  data-wp-c16t="true"
254
254
  data-wp-component="InputControlSuffixWrapper"
255
255
  >
@@ -327,7 +327,7 @@ exports[`DimensionControl rendering renders with defaults 1`] = `
327
327
  min-height: 0;
328
328
  }
329
329
 
330
- .emotion-6:focus-within:not( :has( :is( .em5sgkm7, .emotion-19 ):focus-within ) ) .emotion-26 {
330
+ .emotion-6:focus-within:not( :has( :is( .em5sgkm8, .emotion-19 ):focus-within ) ) .emotion-26 {
331
331
  border-color: var(--wp-components-color-accent, var(--wp-admin-theme-color, #3858e9));
332
332
  box-shadow: 0 0 0 0.5px var(--wp-components-color-accent, var(--wp-admin-theme-color, #3858e9));
333
333
  outline: 2px solid transparent;
@@ -439,8 +439,8 @@ exports[`DimensionControl rendering renders with defaults 1`] = `
439
439
  }
440
440
 
441
441
  .emotion-21 {
442
- margin-bottom: 0;
443
- padding-right: calc(4px * 2);
442
+ -webkit-padding-end: 8px;
443
+ padding-inline-end: 8px;
444
444
  position: absolute;
445
445
  pointer-events: none;
446
446
  right: 0;
@@ -541,7 +541,7 @@ exports[`DimensionControl rendering renders with defaults 1`] = `
541
541
  class="components-input-control__suffix emotion-18 emotion-19"
542
542
  >
543
543
  <div
544
- class="components-spacer components-input-control-suffix-wrapper emotion-20 emotion-21 emotion-7"
544
+ class="components-input-control-suffix-wrapper emotion-20 emotion-21 emotion-22"
545
545
  data-wp-c16t="true"
546
546
  data-wp-component="InputControlSuffixWrapper"
547
547
  >
@@ -619,7 +619,7 @@ exports[`DimensionControl rendering renders with icon and custom icon label 1`]
619
619
  min-height: 0;
620
620
  }
621
621
 
622
- .emotion-6:focus-within:not( :has( :is( .em5sgkm7, .emotion-19 ):focus-within ) ) .emotion-26 {
622
+ .emotion-6:focus-within:not( :has( :is( .em5sgkm8, .emotion-19 ):focus-within ) ) .emotion-26 {
623
623
  border-color: var(--wp-components-color-accent, var(--wp-admin-theme-color, #3858e9));
624
624
  box-shadow: 0 0 0 0.5px var(--wp-components-color-accent, var(--wp-admin-theme-color, #3858e9));
625
625
  outline: 2px solid transparent;
@@ -731,8 +731,8 @@ exports[`DimensionControl rendering renders with icon and custom icon label 1`]
731
731
  }
732
732
 
733
733
  .emotion-21 {
734
- margin-bottom: 0;
735
- padding-right: calc(4px * 2);
734
+ -webkit-padding-end: 8px;
735
+ padding-inline-end: 8px;
736
736
  position: absolute;
737
737
  pointer-events: none;
738
738
  right: 0;
@@ -845,7 +845,7 @@ exports[`DimensionControl rendering renders with icon and custom icon label 1`]
845
845
  class="components-input-control__suffix emotion-18 emotion-19"
846
846
  >
847
847
  <div
848
- class="components-spacer components-input-control-suffix-wrapper emotion-20 emotion-21 emotion-7"
848
+ class="components-input-control-suffix-wrapper emotion-20 emotion-21 emotion-22"
849
849
  data-wp-c16t="true"
850
850
  data-wp-component="InputControlSuffixWrapper"
851
851
  >
@@ -923,7 +923,7 @@ exports[`DimensionControl rendering renders with icon and default icon label 1`]
923
923
  min-height: 0;
924
924
  }
925
925
 
926
- .emotion-6:focus-within:not( :has( :is( .em5sgkm7, .emotion-19 ):focus-within ) ) .emotion-26 {
926
+ .emotion-6:focus-within:not( :has( :is( .em5sgkm8, .emotion-19 ):focus-within ) ) .emotion-26 {
927
927
  border-color: var(--wp-components-color-accent, var(--wp-admin-theme-color, #3858e9));
928
928
  box-shadow: 0 0 0 0.5px var(--wp-components-color-accent, var(--wp-admin-theme-color, #3858e9));
929
929
  outline: 2px solid transparent;
@@ -1035,8 +1035,8 @@ exports[`DimensionControl rendering renders with icon and default icon label 1`]
1035
1035
  }
1036
1036
 
1037
1037
  .emotion-21 {
1038
- margin-bottom: 0;
1039
- padding-right: calc(4px * 2);
1038
+ -webkit-padding-end: 8px;
1039
+ padding-inline-end: 8px;
1040
1040
  position: absolute;
1041
1041
  pointer-events: none;
1042
1042
  right: 0;
@@ -1149,7 +1149,7 @@ exports[`DimensionControl rendering renders with icon and default icon label 1`]
1149
1149
  class="components-input-control__suffix emotion-18 emotion-19"
1150
1150
  >
1151
1151
  <div
1152
- class="components-spacer components-input-control-suffix-wrapper emotion-20 emotion-21 emotion-7"
1152
+ class="components-input-control-suffix-wrapper emotion-20 emotion-21 emotion-22"
1153
1153
  data-wp-c16t="true"
1154
1154
  data-wp-component="InputControlSuffixWrapper"
1155
1155
  >