@wordpress/components 32.5.2-next.v.202604091042.0 → 33.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (375) hide show
  1. package/CHANGELOG.md +46 -1
  2. package/build/alignment-matrix-control/cell.cjs +3 -3
  3. package/build/alignment-matrix-control/cell.cjs.map +2 -2
  4. package/build/alignment-matrix-control/index.cjs +3 -3
  5. package/build/alignment-matrix-control/index.cjs.map +2 -2
  6. package/build/autocomplete/get-autocomplete-match.cjs +11 -2
  7. package/build/autocomplete/get-autocomplete-match.cjs.map +2 -2
  8. package/build/autocomplete/index.cjs +42 -11
  9. package/build/autocomplete/index.cjs.map +2 -2
  10. package/build/custom-gradient-picker/index.cjs.map +2 -2
  11. package/build/date-time/{date → date-picker}/index.cjs +6 -6
  12. package/build/date-time/{date → date-picker}/index.cjs.map +2 -2
  13. package/build/date-time/{date → date-picker}/styles.cjs +17 -17
  14. package/build/date-time/{date → date-picker}/styles.cjs.map +2 -2
  15. package/build/date-time/{date → date-picker}/use-lilius/index.cjs +1 -1
  16. package/build/date-time/{date → date-picker}/use-lilius/index.cjs.map +1 -1
  17. package/build/date-time/date-time/index.cjs +6 -6
  18. package/build/date-time/date-time/index.cjs.map +2 -2
  19. package/build/date-time/index.cjs +4 -4
  20. package/build/date-time/index.cjs.map +2 -2
  21. package/build/date-time/{time → time-picker}/index.cjs +6 -6
  22. package/build/date-time/time-picker/index.cjs.map +7 -0
  23. package/build/date-time/{time → time-picker}/styles.cjs +21 -21
  24. package/build/date-time/{time → time-picker}/styles.cjs.map +2 -2
  25. package/build/date-time/{time → time-picker}/time-input/index.cjs +1 -1
  26. package/build/date-time/{time → time-picker}/time-input/index.cjs.map +1 -1
  27. package/build/date-time/{time → time-picker}/timezone.cjs +1 -1
  28. package/build/date-time/{time → time-picker}/timezone.cjs.map +1 -1
  29. package/build/external-link/index.cjs +1 -1
  30. package/build/external-link/index.cjs.map +2 -2
  31. package/build/form-token-field/index.cjs +22 -6
  32. package/build/form-token-field/index.cjs.map +3 -3
  33. package/build/form-token-field/token-input.cjs +1 -1
  34. package/build/form-token-field/token-input.cjs.map +2 -2
  35. package/build/menu/popover.cjs +7 -3
  36. package/build/menu/popover.cjs.map +2 -2
  37. package/build/menu/styles.cjs +39 -16
  38. package/build/menu/styles.cjs.map +2 -2
  39. package/build/modal/index.cjs.map +2 -2
  40. package/build/navigable-container/container.cjs +72 -110
  41. package/build/navigable-container/container.cjs.map +2 -2
  42. package/build/palette-edit/index.cjs.map +2 -2
  43. package/build/radio-control/index.cjs +2 -0
  44. package/build/radio-control/index.cjs.map +2 -2
  45. package/build/sandbox/index.cjs +125 -1
  46. package/build/sandbox/index.cjs.map +2 -2
  47. package/build/textarea-control/styles/textarea-control-styles.cjs +3 -3
  48. package/build/textarea-control/styles/textarea-control-styles.cjs.map +2 -2
  49. package/build/utils/breakpoint.cjs.map +1 -1
  50. package/build/utils/font.cjs.map +1 -1
  51. package/build/visually-hidden/component.cjs +1 -0
  52. package/build/visually-hidden/component.cjs.map +2 -2
  53. package/build-module/alignment-matrix-control/cell.mjs +3 -3
  54. package/build-module/alignment-matrix-control/cell.mjs.map +2 -2
  55. package/build-module/alignment-matrix-control/index.mjs +3 -3
  56. package/build-module/alignment-matrix-control/index.mjs.map +2 -2
  57. package/build-module/autocomplete/get-autocomplete-match.mjs +11 -2
  58. package/build-module/autocomplete/get-autocomplete-match.mjs.map +2 -2
  59. package/build-module/autocomplete/index.mjs +42 -11
  60. package/build-module/autocomplete/index.mjs.map +2 -2
  61. package/build-module/custom-gradient-picker/index.mjs.map +2 -2
  62. package/build-module/date-time/{date → date-picker}/index.mjs +3 -3
  63. package/build-module/date-time/{date → date-picker}/index.mjs.map +2 -2
  64. package/build-module/date-time/{date → date-picker}/styles.mjs +17 -17
  65. package/build-module/date-time/{date → date-picker}/styles.mjs.map +2 -2
  66. package/build-module/date-time/{date → date-picker}/use-lilius/index.mjs +1 -1
  67. package/build-module/date-time/{date → date-picker}/use-lilius/index.mjs.map +1 -1
  68. package/build-module/date-time/date-time/index.mjs +2 -2
  69. package/build-module/date-time/date-time/index.mjs.map +1 -1
  70. package/build-module/date-time/index.mjs +2 -2
  71. package/build-module/date-time/index.mjs.map +1 -1
  72. package/build-module/date-time/{time → time-picker}/index.mjs +3 -3
  73. package/build-module/date-time/time-picker/index.mjs.map +7 -0
  74. package/build-module/date-time/{time → time-picker}/styles.mjs +21 -21
  75. package/build-module/date-time/{time → time-picker}/styles.mjs.map +2 -2
  76. package/build-module/date-time/{time → time-picker}/time-input/index.mjs +1 -1
  77. package/build-module/date-time/{time → time-picker}/time-input/index.mjs.map +1 -1
  78. package/build-module/date-time/{time → time-picker}/timezone.mjs +1 -1
  79. package/build-module/date-time/{time → time-picker}/timezone.mjs.map +1 -1
  80. package/build-module/external-link/index.mjs +1 -1
  81. package/build-module/external-link/index.mjs.map +2 -2
  82. package/build-module/form-token-field/index.mjs +22 -6
  83. package/build-module/form-token-field/index.mjs.map +2 -2
  84. package/build-module/form-token-field/token-input.mjs +1 -1
  85. package/build-module/form-token-field/token-input.mjs.map +2 -2
  86. package/build-module/menu/popover.mjs +7 -3
  87. package/build-module/menu/popover.mjs.map +2 -2
  88. package/build-module/menu/styles.mjs +37 -16
  89. package/build-module/menu/styles.mjs.map +2 -2
  90. package/build-module/modal/index.mjs.map +2 -2
  91. package/build-module/navigable-container/container.mjs +73 -111
  92. package/build-module/navigable-container/container.mjs.map +2 -2
  93. package/build-module/palette-edit/index.mjs.map +2 -2
  94. package/build-module/radio-control/index.mjs +2 -0
  95. package/build-module/radio-control/index.mjs.map +2 -2
  96. package/build-module/sandbox/index.mjs +126 -2
  97. package/build-module/sandbox/index.mjs.map +2 -2
  98. package/build-module/textarea-control/styles/textarea-control-styles.mjs +3 -3
  99. package/build-module/textarea-control/styles/textarea-control-styles.mjs.map +2 -2
  100. package/build-module/utils/breakpoint.mjs.map +1 -1
  101. package/build-module/utils/font.mjs.map +1 -1
  102. package/build-module/visually-hidden/component.mjs +1 -0
  103. package/build-module/visually-hidden/component.mjs.map +2 -2
  104. package/build-style/style-rtl.css +109 -25
  105. package/build-style/style.css +109 -25
  106. package/build-types/autocomplete/get-autocomplete-match.d.ts +10 -1
  107. package/build-types/autocomplete/get-autocomplete-match.d.ts.map +1 -1
  108. package/build-types/autocomplete/index.d.ts.map +1 -1
  109. package/build-types/base-control/stories/index.story.d.ts.map +1 -1
  110. package/build-types/button/stories/index.story.d.ts.map +1 -1
  111. package/build-types/card/stories/index.story.d.ts +0 -6
  112. package/build-types/card/stories/index.story.d.ts.map +1 -1
  113. package/build-types/checkbox-control/stories/index.story.d.ts.map +1 -1
  114. package/build-types/checkbox-control/types.d.ts +4 -0
  115. package/build-types/checkbox-control/types.d.ts.map +1 -1
  116. package/build-types/color-indicator/stories/index.story.d.ts.map +1 -1
  117. package/build-types/color-palette/stories/index.story.d.ts.map +1 -1
  118. package/build-types/color-picker/stories/index.story.d.ts.map +1 -1
  119. package/build-types/combobox-control/stories/index.story.d.ts.map +1 -1
  120. package/build-types/composite/stories/index.story.d.ts.map +1 -1
  121. package/build-types/custom-gradient-picker/index.d.ts.map +1 -1
  122. package/build-types/custom-select-control/stories/index.story.d.ts.map +1 -1
  123. package/build-types/date-time/date-picker/index.d.ts.map +1 -0
  124. package/build-types/date-time/date-picker/styles.d.ts.map +1 -0
  125. package/build-types/date-time/date-picker/test/index.d.ts.map +1 -0
  126. package/build-types/date-time/date-picker/test/use-lilius.d.ts.map +1 -0
  127. package/build-types/date-time/date-picker/use-lilius/index.d.ts.map +1 -0
  128. package/build-types/date-time/date-time/index.d.ts +2 -2
  129. package/build-types/date-time/date-time/index.d.ts.map +1 -1
  130. package/build-types/date-time/index.d.ts +2 -2
  131. package/build-types/date-time/index.d.ts.map +1 -1
  132. package/build-types/date-time/stories/date.story.d.ts +1 -1
  133. package/build-types/date-time/stories/date.story.d.ts.map +1 -1
  134. package/build-types/date-time/stories/time.story.d.ts +1 -1
  135. package/build-types/date-time/stories/time.story.d.ts.map +1 -1
  136. package/build-types/date-time/{time → time-picker}/index.d.ts +1 -1
  137. package/build-types/date-time/time-picker/index.d.ts.map +1 -0
  138. package/build-types/date-time/time-picker/styles.d.ts.map +1 -0
  139. package/build-types/date-time/time-picker/test/index.d.ts.map +1 -0
  140. package/build-types/date-time/time-picker/time-input/index.d.ts.map +1 -0
  141. package/build-types/date-time/time-picker/time-input/test/index.d.ts.map +1 -0
  142. package/build-types/date-time/time-picker/timezone.d.ts.map +1 -0
  143. package/build-types/date-time/types.d.ts +1 -1
  144. package/build-types/date-time/types.d.ts.map +1 -1
  145. package/build-types/disabled/stories/index.story.d.ts.map +1 -1
  146. package/build-types/drop-zone/stories/index.story.d.ts.map +1 -1
  147. package/build-types/dropdown/stories/index.story.d.ts.map +1 -1
  148. package/build-types/external-link/index.d.ts.map +1 -1
  149. package/build-types/external-link/stories/index.story.d.ts.map +1 -1
  150. package/build-types/form-file-upload/stories/index.story.d.ts.map +1 -1
  151. package/build-types/form-toggle/stories/index.story.d.ts.map +1 -1
  152. package/build-types/form-token-field/index.d.ts.map +1 -1
  153. package/build-types/form-token-field/stories/index.story.d.ts.map +1 -1
  154. package/build-types/form-token-field/token-input.d.ts.map +1 -1
  155. package/build-types/form-token-field/types.d.ts +16 -2
  156. package/build-types/form-token-field/types.d.ts.map +1 -1
  157. package/build-types/gradient-picker/stories/index.story.d.ts.map +1 -1
  158. package/build-types/icon/stories/index.story.d.ts.map +1 -1
  159. package/build-types/keyboard-shortcuts/stories/index.story.d.ts.map +1 -1
  160. package/build-types/menu/popover.d.ts.map +1 -1
  161. package/build-types/menu/styles.d.ts +16 -1
  162. package/build-types/menu/styles.d.ts.map +1 -1
  163. package/build-types/menu-group/stories/index.story.d.ts.map +1 -1
  164. package/build-types/menu-item/stories/index.story.d.ts.map +1 -1
  165. package/build-types/menu-items-choice/stories/index.story.d.ts.map +1 -1
  166. package/build-types/modal/index.d.ts.map +1 -1
  167. package/build-types/modal/stories/index.story.d.ts.map +1 -1
  168. package/build-types/navigable-container/container.d.ts +3 -8
  169. package/build-types/navigable-container/container.d.ts.map +1 -1
  170. package/build-types/navigable-container/types.d.ts +1 -5
  171. package/build-types/navigable-container/types.d.ts.map +1 -1
  172. package/build-types/navigation/stories/utils/more-examples.d.ts.map +1 -1
  173. package/build-types/navigator/stories/index.story.d.ts.map +1 -1
  174. package/build-types/notice/stories/index.story.d.ts.map +1 -1
  175. package/build-types/palette-edit/index.d.ts.map +1 -1
  176. package/build-types/panel/stories/index.story.d.ts.map +1 -1
  177. package/build-types/popover/stories/index.story.d.ts.map +1 -1
  178. package/build-types/progress-bar/stories/index.story.d.ts.map +1 -1
  179. package/build-types/radio-control/index.d.ts.map +1 -1
  180. package/build-types/radio-control/stories/index.story.d.ts.map +1 -1
  181. package/build-types/radio-control/types.d.ts +6 -0
  182. package/build-types/radio-control/types.d.ts.map +1 -1
  183. package/build-types/range-control/stories/index.story.d.ts.map +1 -1
  184. package/build-types/resizable-box/stories/index.story.d.ts.map +1 -1
  185. package/build-types/sandbox/index.d.ts +1 -1
  186. package/build-types/sandbox/index.d.ts.map +1 -1
  187. package/build-types/sandbox/stories/index.story.d.ts.map +1 -1
  188. package/build-types/sandbox/types.d.ts +11 -0
  189. package/build-types/sandbox/types.d.ts.map +1 -1
  190. package/build-types/scroll-lock/stories/index.story.d.ts.map +1 -1
  191. package/build-types/search-control/stories/index.story.d.ts.map +1 -1
  192. package/build-types/select-control/stories/index.story.d.ts.map +1 -1
  193. package/build-types/shortcut/stories/index.story.d.ts.map +1 -1
  194. package/build-types/slot-fill/stories/index.story.d.ts.map +1 -1
  195. package/build-types/snackbar/stories/index.story.d.ts.map +1 -1
  196. package/build-types/spinner/stories/index.story.d.ts.map +1 -1
  197. package/build-types/text-control/stories/index.story.d.ts.map +1 -1
  198. package/build-types/text-highlight/stories/index.story.d.ts.map +1 -1
  199. package/build-types/textarea-control/stories/index.story.d.ts.map +1 -1
  200. package/build-types/textarea-control/styles/textarea-control-styles.d.ts.map +1 -1
  201. package/build-types/toggle-control/stories/index.story.d.ts.map +1 -1
  202. package/build-types/tooltip/stories/index.story.d.ts.map +1 -1
  203. package/build-types/tree-select/stories/index.story.d.ts.map +1 -1
  204. package/build-types/utils/breakpoint.d.ts +2 -1
  205. package/build-types/utils/breakpoint.d.ts.map +1 -1
  206. package/build-types/utils/font.d.ts +3 -2
  207. package/build-types/utils/font.d.ts.map +1 -1
  208. package/build-types/validated-form-controls/components/checkbox-control.d.ts +2 -1
  209. package/build-types/validated-form-controls/components/checkbox-control.d.ts.map +1 -1
  210. package/build-types/validated-form-controls/components/radio-control.d.ts +2 -1
  211. package/build-types/validated-form-controls/components/radio-control.d.ts.map +1 -1
  212. package/build-types/visually-hidden/component.d.ts.map +1 -1
  213. package/build-types/visually-hidden/stories/index.story.d.ts +0 -6
  214. package/build-types/visually-hidden/stories/index.story.d.ts.map +1 -1
  215. package/package.json +21 -21
  216. package/src/alignment-matrix-control/style.module.scss +1 -1
  217. package/src/autocomplete/get-autocomplete-match.ts +25 -4
  218. package/src/autocomplete/index.tsx +69 -21
  219. package/src/autocomplete/test/get-autocomplete-match.ts +97 -75
  220. package/src/base-control/stories/index.story.tsx +1 -0
  221. package/src/button/stories/index.story.tsx +1 -0
  222. package/src/button/style.scss +1 -1
  223. package/src/button-group/style.scss +1 -2
  224. package/src/calendar/style.scss +3 -3
  225. package/src/card/stories/index.story.tsx +2 -9
  226. package/src/checkbox-control/stories/index.story.tsx +1 -0
  227. package/src/checkbox-control/style.scss +17 -5
  228. package/src/checkbox-control/types.ts +4 -0
  229. package/src/circular-option-picker/style.scss +9 -7
  230. package/src/color-indicator/stories/index.story.tsx +1 -0
  231. package/src/color-palette/stories/index.story.tsx +1 -0
  232. package/src/color-palette/style.scss +1 -1
  233. package/src/color-picker/stories/index.story.tsx +1 -0
  234. package/src/combobox-control/stories/index.story.tsx +1 -0
  235. package/src/composite/stories/index.story.tsx +1 -0
  236. package/src/confirm-dialog/stories/index.story.tsx +1 -1
  237. package/src/css.d.ts +1 -0
  238. package/src/custom-gradient-picker/index.tsx +1 -0
  239. package/src/custom-select-control/stories/index.story.tsx +1 -0
  240. package/src/date-time/README.md +3 -3
  241. package/src/date-time/date-picker/README.md +65 -0
  242. package/src/date-time/date-time/index.tsx +2 -2
  243. package/src/date-time/index.ts +2 -2
  244. package/src/date-time/stories/date.story.tsx +1 -1
  245. package/src/date-time/stories/time.story.tsx +1 -1
  246. package/src/date-time/time-picker/README.md +119 -0
  247. package/src/date-time/{time → time-picker}/index.tsx +1 -1
  248. package/src/date-time/types.ts +1 -1
  249. package/src/disabled/stories/index.story.tsx +1 -0
  250. package/src/drop-zone/stories/index.story.tsx +1 -0
  251. package/src/dropdown/stories/index.story.tsx +1 -0
  252. package/src/dropdown-menu/style.scss +1 -1
  253. package/src/external-link/index.tsx +1 -6
  254. package/src/external-link/stories/index.story.tsx +2 -1
  255. package/src/external-link/style.scss +30 -2
  256. package/src/form-file-upload/stories/index.story.tsx +1 -0
  257. package/src/form-toggle/stories/index.story.tsx +1 -0
  258. package/src/form-toggle/style.scss +38 -4
  259. package/src/form-token-field/README.md +2 -1
  260. package/src/form-token-field/index.tsx +39 -9
  261. package/src/form-token-field/stories/index.story.tsx +2 -0
  262. package/src/form-token-field/style.scss +12 -3
  263. package/src/form-token-field/test/index.tsx +70 -10
  264. package/src/form-token-field/token-input.tsx +1 -6
  265. package/src/form-token-field/types.ts +16 -2
  266. package/src/gradient-picker/stories/index.story.tsx +1 -0
  267. package/src/icon/stories/index.story.tsx +1 -0
  268. package/src/input-control/stories/index.story.tsx +1 -1
  269. package/src/item-group/stories/index.story.tsx +1 -1
  270. package/src/keyboard-shortcuts/stories/index.story.tsx +1 -0
  271. package/src/menu/popover.tsx +15 -8
  272. package/src/menu/styles.ts +26 -16
  273. package/src/menu/test/index.tsx +24 -34
  274. package/src/menu-group/stories/index.story.tsx +1 -0
  275. package/src/menu-item/stories/index.story.tsx +1 -0
  276. package/src/menu-items-choice/stories/index.story.tsx +1 -0
  277. package/src/mobile/link-settings/index.native.js +1 -1
  278. package/src/modal/index.tsx +1 -0
  279. package/src/modal/stories/index.story.tsx +1 -0
  280. package/src/navigable-container/container.tsx +120 -141
  281. package/src/navigable-container/test/navigable-menu.tsx +24 -0
  282. package/src/navigable-container/types.ts +1 -5
  283. package/src/navigation/stories/utils/more-examples.tsx +2 -1
  284. package/src/navigator/stories/index.story.tsx +1 -0
  285. package/src/notice/stories/index.story.tsx +1 -0
  286. package/src/notice/test/__snapshots__/index.tsx.snap +1 -0
  287. package/src/number-control/stories/index.story.tsx +1 -1
  288. package/src/palette-edit/index.tsx +1 -0
  289. package/src/panel/stories/index.story.tsx +1 -0
  290. package/src/popover/stories/index.story.tsx +1 -0
  291. package/src/progress-bar/stories/index.story.tsx +1 -0
  292. package/src/radio-control/index.tsx +2 -0
  293. package/src/radio-control/stories/index.story.tsx +1 -0
  294. package/src/radio-control/style.scss +21 -2
  295. package/src/radio-control/test/index.tsx +10 -0
  296. package/src/radio-control/types.ts +6 -0
  297. package/src/range-control/stories/index.story.tsx +1 -0
  298. package/src/resizable-box/stories/index.story.tsx +1 -0
  299. package/src/resizable-box/style.scss +4 -5
  300. package/src/sandbox/index.tsx +189 -9
  301. package/src/sandbox/stories/index.story.tsx +1 -0
  302. package/src/sandbox/test/index.tsx +65 -24
  303. package/src/sandbox/types.ts +11 -0
  304. package/src/scroll-lock/stories/index.story.tsx +1 -0
  305. package/src/search-control/stories/index.story.tsx +1 -0
  306. package/src/select-control/stories/index.story.tsx +1 -0
  307. package/src/shortcut/stories/index.story.tsx +1 -0
  308. package/src/slot-fill/stories/index.story.tsx +1 -0
  309. package/src/snackbar/stories/index.story.tsx +1 -0
  310. package/src/snackbar/style.scss +2 -2
  311. package/src/spinner/stories/index.story.tsx +1 -0
  312. package/src/tab-panel/style.scss +1 -1
  313. package/src/text-control/stories/index.story.tsx +1 -0
  314. package/src/text-highlight/stories/index.story.tsx +1 -0
  315. package/src/textarea-control/stories/index.story.tsx +4 -0
  316. package/src/textarea-control/styles/textarea-control-styles.ts +6 -0
  317. package/src/toggle-control/stories/index.story.tsx +1 -0
  318. package/src/toggle-control/style.scss +1 -1
  319. package/src/toggle-control/test/index.tsx +8 -2
  320. package/src/toggle-group-control/stories/index.story.tsx +1 -1
  321. package/src/toolbar/toolbar-group/index.tsx +2 -2
  322. package/src/tooltip/stories/index.story.tsx +1 -0
  323. package/src/tooltip/test/index.tsx +3 -2
  324. package/src/tree-grid/stories/index.story.tsx +1 -1
  325. package/src/tree-select/stories/index.story.tsx +1 -0
  326. package/src/truncate/stories/index.story.tsx +1 -1
  327. package/src/unit-control/stories/index.story.tsx +1 -1
  328. package/src/utils/breakpoint.js +1 -1
  329. package/src/utils/font.js +1 -1
  330. package/src/visually-hidden/component.tsx +1 -0
  331. package/src/visually-hidden/stories/index.story.tsx +2 -8
  332. package/build/card/context.cjs +0 -36
  333. package/build/card/context.cjs.map +0 -7
  334. package/build/date-time/time/index.cjs.map +0 -7
  335. package/build-module/card/context.mjs +0 -10
  336. package/build-module/card/context.mjs.map +0 -7
  337. package/build-module/date-time/time/index.mjs.map +0 -7
  338. package/build-types/card/context.d.ts +0 -3
  339. package/build-types/card/context.d.ts.map +0 -1
  340. package/build-types/date-time/date/index.d.ts.map +0 -1
  341. package/build-types/date-time/date/styles.d.ts.map +0 -1
  342. package/build-types/date-time/date/test/index.d.ts.map +0 -1
  343. package/build-types/date-time/date/test/use-lilius.d.ts.map +0 -1
  344. package/build-types/date-time/date/use-lilius/index.d.ts.map +0 -1
  345. package/build-types/date-time/time/index.d.ts.map +0 -1
  346. package/build-types/date-time/time/styles.d.ts.map +0 -1
  347. package/build-types/date-time/time/test/index.d.ts.map +0 -1
  348. package/build-types/date-time/time/time-input/index.d.ts.map +0 -1
  349. package/build-types/date-time/time/time-input/test/index.d.ts.map +0 -1
  350. package/build-types/date-time/time/timezone.d.ts.map +0 -1
  351. package/build-types/visually-hidden/test/index.d.ts +0 -2
  352. package/build-types/visually-hidden/test/index.d.ts.map +0 -1
  353. package/src/card/context.ts +0 -9
  354. package/src/visually-hidden/test/__snapshots__/index.tsx.snap +0 -12
  355. package/src/visually-hidden/test/index.tsx +0 -17
  356. /package/build-types/date-time/{date → date-picker}/index.d.ts +0 -0
  357. /package/build-types/date-time/{date → date-picker}/styles.d.ts +0 -0
  358. /package/build-types/date-time/{date → date-picker}/test/index.d.ts +0 -0
  359. /package/build-types/date-time/{date → date-picker}/test/use-lilius.d.ts +0 -0
  360. /package/build-types/date-time/{date → date-picker}/use-lilius/index.d.ts +0 -0
  361. /package/build-types/date-time/{time → time-picker}/styles.d.ts +0 -0
  362. /package/build-types/date-time/{time → time-picker}/test/index.d.ts +0 -0
  363. /package/build-types/date-time/{time → time-picker}/time-input/index.d.ts +0 -0
  364. /package/build-types/date-time/{time → time-picker}/time-input/test/index.d.ts +0 -0
  365. /package/build-types/date-time/{time → time-picker}/timezone.d.ts +0 -0
  366. /package/src/date-time/{date → date-picker}/index.tsx +0 -0
  367. /package/src/date-time/{date → date-picker}/styles.ts +0 -0
  368. /package/src/date-time/{date → date-picker}/test/index.tsx +0 -0
  369. /package/src/date-time/{date → date-picker}/test/use-lilius.ts +0 -0
  370. /package/src/date-time/{date → date-picker}/use-lilius/index.ts +0 -0
  371. /package/src/date-time/{time → time-picker}/styles.ts +0 -0
  372. /package/src/date-time/{time → time-picker}/test/index.tsx +0 -0
  373. /package/src/date-time/{time → time-picker}/time-input/index.tsx +0 -0
  374. /package/src/date-time/{time → time-picker}/time-input/test/index.tsx +0 -0
  375. /package/src/date-time/{time → time-picker}/timezone.tsx +0 -0
@@ -6,7 +6,8 @@ import type { ForwardedRef } from 'react';
6
6
  /**
7
7
  * WordPress dependencies
8
8
  */
9
- import { Component, forwardRef } from '@wordpress/element';
9
+ import { forwardRef, useRef, useEffect, useCallback } from '@wordpress/element';
10
+ import { useMergeRefs } from '@wordpress/compose';
10
11
  import { focus } from '@wordpress/dom';
11
12
 
12
13
  /**
@@ -28,163 +29,141 @@ function cycleValue( value: number, total: number, offset: number ) {
28
29
  return nextValue;
29
30
  }
30
31
 
31
- class NavigableContainer extends Component< NavigableContainerProps > {
32
- container?: HTMLDivElement;
33
-
34
- constructor( args: NavigableContainerProps ) {
35
- super( args );
36
- this.onKeyDown = this.onKeyDown.bind( this );
37
- this.bindContainer = this.bindContainer.bind( this );
38
-
39
- this.getFocusableContext = this.getFocusableContext.bind( this );
40
- this.getFocusableIndex = this.getFocusableIndex.bind( this );
41
- }
42
-
43
- componentDidMount() {
44
- if ( ! this.container ) {
45
- return;
46
- }
47
-
48
- // We use DOM event listeners instead of React event listeners
49
- // because we want to catch events from the underlying DOM tree
50
- // The React Tree can be different from the DOM tree when using
51
- // portals. Block Toolbars for instance are rendered in a separate
52
- // React Trees.
53
- this.container.addEventListener( 'keydown', this.onKeyDown );
54
- }
55
-
56
- componentWillUnmount() {
57
- if ( ! this.container ) {
58
- return;
59
- }
60
-
61
- this.container.removeEventListener( 'keydown', this.onKeyDown );
62
- }
63
-
64
- bindContainer( ref: HTMLDivElement ) {
65
- const { forwardedRef } = this.props;
66
- this.container = ref;
32
+ function UnforwardedNavigableContainer(
33
+ {
34
+ children,
35
+ stopNavigationEvents,
36
+ eventToOffset,
37
+ onNavigate = noop,
38
+ onKeyDown,
39
+ cycle = true,
40
+ onlyBrowserTabstops,
41
+ ...restProps
42
+ }: NavigableContainerProps,
43
+ ref: ForwardedRef< HTMLDivElement >
44
+ ) {
45
+ const containerRef = useRef< HTMLDivElement | null >( null );
46
+
47
+ const getFocusableIndex = useCallback(
48
+ ( focusables: Element[], target: Element ) => {
49
+ return focusables.indexOf( target );
50
+ },
51
+ []
52
+ );
53
+
54
+ const getFocusableContext = useCallback(
55
+ ( target: Element ) => {
56
+ if ( ! containerRef.current ) {
57
+ return null;
58
+ }
67
59
 
68
- if ( typeof forwardedRef === 'function' ) {
69
- forwardedRef( ref );
70
- } else if ( forwardedRef && 'current' in forwardedRef ) {
71
- forwardedRef.current = ref;
72
- }
73
- }
60
+ const finder = onlyBrowserTabstops
61
+ ? focus.tabbable
62
+ : focus.focusable;
63
+ const focusables = finder.find( containerRef.current );
74
64
 
75
- getFocusableContext( target: Element ) {
76
- if ( ! this.container ) {
65
+ const index = getFocusableIndex( focusables, target );
66
+ if ( index > -1 && target ) {
67
+ return { index, target, focusables };
68
+ }
77
69
  return null;
78
- }
70
+ },
71
+ [ onlyBrowserTabstops, getFocusableIndex ]
72
+ );
79
73
 
80
- const { onlyBrowserTabstops } = this.props;
81
- const finder = onlyBrowserTabstops ? focus.tabbable : focus.focusable;
82
- const focusables = finder.find( this.container );
83
-
84
- const index = this.getFocusableIndex( focusables, target );
85
- if ( index > -1 && target ) {
86
- return { index, target, focusables };
74
+ useEffect( () => {
75
+ const container = containerRef.current;
76
+ if ( ! container ) {
77
+ return;
87
78
  }
88
- return null;
89
- }
90
79
 
91
- getFocusableIndex( focusables: Element[], target: Element ) {
92
- return focusables.indexOf( target );
93
- }
94
-
95
- onKeyDown( event: KeyboardEvent ) {
96
- if ( this.props.onKeyDown ) {
97
- this.props.onKeyDown( event );
98
- }
80
+ function handleKeyDown( event: KeyboardEvent ) {
81
+ if ( onKeyDown ) {
82
+ onKeyDown( event );
83
+ }
99
84
 
100
- const { getFocusableContext } = this;
101
- const {
102
- cycle = true,
103
- eventToOffset,
104
- onNavigate = noop,
105
- stopNavigationEvents,
106
- } = this.props;
107
-
108
- const offset = eventToOffset( event );
109
-
110
- // eventToOffset returns undefined if the event is not handled by the component.
111
- if ( offset !== undefined && stopNavigationEvents ) {
112
- // Prevents arrow key handlers bound to the document directly interfering.
113
- event.stopImmediatePropagation();
114
-
115
- // When navigating a collection of items, prevent scroll containers
116
- // from scrolling. The preventDefault also prevents Voiceover from
117
- // 'handling' the event, as voiceover will try to use arrow keys
118
- // for highlighting text.
119
- const targetRole = (
120
- event.target as HTMLDivElement | null
121
- )?.getAttribute( 'role' );
122
- const targetHasMenuItemRole =
123
- !! targetRole && MENU_ITEM_ROLES.includes( targetRole );
124
-
125
- if ( targetHasMenuItemRole ) {
126
- event.preventDefault();
85
+ const offset = eventToOffset( event );
86
+
87
+ // eventToOffset returns undefined if the event is not handled by the component.
88
+ if ( offset !== undefined && stopNavigationEvents ) {
89
+ // Prevents arrow key handlers bound to the document directly interfering.
90
+ event.stopImmediatePropagation();
91
+
92
+ // When navigating a collection of items, prevent scroll containers
93
+ // from scrolling. The preventDefault also prevents Voiceover from
94
+ // 'handling' the event, as voiceover will try to use arrow keys
95
+ // for highlighting text.
96
+ const targetRole = (
97
+ event.target as HTMLDivElement | null
98
+ )?.getAttribute( 'role' );
99
+ const targetHasMenuItemRole =
100
+ !! targetRole && MENU_ITEM_ROLES.includes( targetRole );
101
+
102
+ if ( targetHasMenuItemRole ) {
103
+ event.preventDefault();
104
+ }
127
105
  }
128
- }
129
106
 
130
- if ( ! offset ) {
131
- return;
132
- }
107
+ if ( ! offset ) {
108
+ return;
109
+ }
133
110
 
134
- const activeElement = ( event.target as HTMLElement | null )
135
- ?.ownerDocument?.activeElement;
136
- if ( ! activeElement ) {
137
- return;
138
- }
111
+ const activeElement = ( event.target as HTMLElement | null )
112
+ ?.ownerDocument?.activeElement;
113
+ if ( ! activeElement ) {
114
+ return;
115
+ }
139
116
 
140
- const context = getFocusableContext( activeElement );
141
- if ( ! context ) {
142
- return;
143
- }
117
+ const context = getFocusableContext( activeElement );
118
+ if ( ! context ) {
119
+ return;
120
+ }
144
121
 
145
- const { index, focusables } = context;
146
- const nextIndex = cycle
147
- ? cycleValue( index, focusables.length, offset )
148
- : index + offset;
122
+ const { index, focusables } = context;
123
+ const nextIndex = cycle
124
+ ? cycleValue( index, focusables.length, offset )
125
+ : index + offset;
149
126
 
150
- if ( nextIndex >= 0 && nextIndex < focusables.length ) {
151
- focusables[ nextIndex ].focus();
152
- onNavigate( nextIndex, focusables[ nextIndex ] );
127
+ if ( nextIndex >= 0 && nextIndex < focusables.length ) {
128
+ focusables[ nextIndex ].focus();
129
+ onNavigate( nextIndex, focusables[ nextIndex ] as HTMLElement );
153
130
 
154
- // `preventDefault()` on tab to avoid having the browser move the focus
155
- // after this component has already moved it.
156
- if ( event.code === 'Tab' ) {
157
- event.preventDefault();
131
+ // `preventDefault()` on tab to avoid having the browser move the focus
132
+ // after this component has already moved it.
133
+ if ( event.code === 'Tab' ) {
134
+ event.preventDefault();
135
+ }
158
136
  }
159
137
  }
160
- }
161
138
 
162
- render() {
163
- const {
164
- children,
165
- stopNavigationEvents,
166
- eventToOffset,
167
- onNavigate,
168
- onKeyDown,
169
- cycle,
170
- onlyBrowserTabstops,
171
- forwardedRef,
172
- ...restProps
173
- } = this.props;
174
- return (
175
- <div ref={ this.bindContainer } { ...restProps }>
176
- { children }
177
- </div>
178
- );
179
- }
139
+ // We use DOM event listeners instead of React event listeners
140
+ // because we want to catch events from the underlying DOM tree.
141
+ // The React Tree can be different from the DOM tree when using
142
+ // portals. Block Toolbars for instance are rendered in a separate
143
+ // React Trees.
144
+ container.addEventListener( 'keydown', handleKeyDown );
145
+ return () => {
146
+ container.removeEventListener( 'keydown', handleKeyDown );
147
+ };
148
+ }, [
149
+ onKeyDown,
150
+ eventToOffset,
151
+ stopNavigationEvents,
152
+ cycle,
153
+ onNavigate,
154
+ getFocusableContext,
155
+ ] );
156
+
157
+ const mergedRef = useMergeRefs( [ containerRef, ref ] );
158
+
159
+ return (
160
+ <div ref={ mergedRef } { ...restProps }>
161
+ { children }
162
+ </div>
163
+ );
180
164
  }
181
165
 
182
- const forwardedNavigableContainer = (
183
- props: NavigableContainerProps,
184
- ref: ForwardedRef< HTMLDivElement >
185
- ) => {
186
- return <NavigableContainer { ...props } forwardedRef={ ref } />;
187
- };
188
- forwardedNavigableContainer.displayName = 'NavigableContainer';
166
+ const NavigableContainer = forwardRef( UnforwardedNavigableContainer );
167
+ NavigableContainer.displayName = 'NavigableContainer';
189
168
 
190
- export default forwardRef( forwardedNavigableContainer );
169
+ export default NavigableContainer;
@@ -215,6 +215,30 @@ describe( 'NavigableMenu', () => {
215
215
  expect( externalWrapperOnKeyDownSpy ).toHaveBeenCalledTimes( 2 );
216
216
  } );
217
217
 
218
+ it( 'should keep forwarded callback refs stable across rerenders', () => {
219
+ const refSpy = jest.fn();
220
+
221
+ const { rerender } = render(
222
+ <NavigableMenu ref={ refSpy }>
223
+ <button>Item 1</button>
224
+ </NavigableMenu>
225
+ );
226
+
227
+ expect( refSpy ).toHaveBeenCalledTimes( 1 );
228
+ expect( refSpy ).toHaveBeenCalledWith( expect.any( HTMLElement ) );
229
+
230
+ rerender(
231
+ <NavigableMenu ref={ refSpy }>
232
+ <button>Item 1</button>
233
+ </NavigableMenu>
234
+ );
235
+
236
+ // With a stable merged ref (useMergeRefs), the callback ref should
237
+ // not be called again on rerender. Previously, an inline ref callback
238
+ // would cause React to detach (null) and reattach on every render.
239
+ expect( refSpy ).toHaveBeenCalledTimes( 1 );
240
+ } );
241
+
218
242
  it( 'skips its internal logic when the tab key is pressed', async () => {
219
243
  const user = userEvent.setup();
220
244
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * External dependencies
3
3
  */
4
- import type { ForwardedRef, ReactNode } from 'react';
4
+ import type { ReactNode } from 'react';
5
5
 
6
6
  /**
7
7
  * Internal dependencies
@@ -35,10 +35,6 @@ export type NavigableContainerProps = WordPressComponentProps<
35
35
  * Gets an offset, given an event.
36
36
  */
37
37
  eventToOffset: ( event: KeyboardEvent ) => -1 | 0 | 1 | undefined;
38
- /**
39
- * The forwarded ref.
40
- */
41
- forwardedRef?: ForwardedRef< any >;
42
38
  /**
43
39
  * Whether to only consider browser tab stops.
44
40
  *
@@ -82,11 +82,12 @@ export const MoreExamplesStory: StoryFn< typeof Navigation > = ( {
82
82
  title="WordPress.org"
83
83
  />
84
84
  <NavigationItem item="item-5">
85
+ { /* eslint-disable-next-line react/jsx-no-target-blank */ }
85
86
  <a
86
87
  className="navigation-story__wordpress-icon"
87
88
  href="https://wordpress.org/"
88
89
  target="_blank"
89
- rel="noreferrer"
90
+ rel="noopener"
90
91
  >
91
92
  <Icon icon={ wordpress } />
92
93
  <em>Custom Content</em>
@@ -12,6 +12,7 @@ import { HStack } from '../../h-stack';
12
12
  import { Navigator, useNavigator } from '../';
13
13
 
14
14
  const meta: Meta< typeof Navigator > = {
15
+ tags: [ 'manifest' ],
15
16
  component: Navigator,
16
17
  subcomponents: {
17
18
  Screen: Navigator.Screen,
@@ -18,6 +18,7 @@ import NoticeList from '../list';
18
18
  import type { NoticeListProps } from '../types';
19
19
 
20
20
  const meta: Meta< typeof Notice > = {
21
+ tags: [ 'manifest' ],
21
22
  title: 'Components/Feedback/Notice',
22
23
  id: 'components-notice',
23
24
  component: Notice,
@@ -7,6 +7,7 @@ exports[`Notice should match snapshot 1`] = `
7
7
  >
8
8
  <div
9
9
  class="components-visually-hidden css-1ragr82-PolymorphicDiv emotion-0"
10
+ data-visually-hidden=""
10
11
  data-wp-c16t="true"
11
12
  data-wp-component="VisuallyHidden"
12
13
  style="border: 0px; clip: rect(1px, 1px, 1px, 1px); clip-path: inset( 50% ); height: 1px; margin: -1px; overflow: hidden; padding: 0px; position: absolute; width: 1px; word-wrap: normal; word-break: normal;"
@@ -25,7 +25,7 @@ const meta: Meta< typeof NumberControl > = {
25
25
  type: { control: { type: 'text' } },
26
26
  value: { control: false },
27
27
  },
28
- tags: [ 'status-experimental' ],
28
+ tags: [ 'status-experimental', 'manifest' ],
29
29
  parameters: {
30
30
  controls: { expanded: true },
31
31
  docs: { canvas: { sourceState: 'shown' } },
@@ -299,6 +299,7 @@ function PaletteEditListView< T extends PaletteElement >( {
299
299
  // When unmounting the component if there are empty elements (the user did not complete the insertion) clean them.
300
300
  const elementsReferenceRef = useRef< T[] >( undefined );
301
301
  useEffect( () => {
302
+ // eslint-disable-next-line react-compiler/react-compiler -- false positive, see https://github.com/facebook/react/issues/29196
302
303
  elementsReferenceRef.current = elements;
303
304
  }, [ elements ] );
304
305
 
@@ -17,6 +17,7 @@ import PanelBody from '../body';
17
17
  import InputControl from '../../input-control';
18
18
 
19
19
  const meta: Meta< typeof Panel > = {
20
+ tags: [ 'manifest' ],
20
21
  title: 'Components/Containers/Panel',
21
22
  id: 'components-panel',
22
23
  component: Panel,
@@ -33,6 +33,7 @@ const AVAILABLE_PLACEMENTS: PopoverProps[ 'placement' ][] = [
33
33
  ];
34
34
 
35
35
  const meta: Meta< typeof Popover > = {
36
+ tags: [ 'manifest' ],
36
37
  title: 'Components/Overlays/Popover',
37
38
  id: 'components-popover',
38
39
  component: Popover,
@@ -9,6 +9,7 @@ import type { Meta, StoryFn } from '@storybook/react-vite';
9
9
  import { ProgressBar } from '..';
10
10
 
11
11
  const meta: Meta< typeof ProgressBar > = {
12
+ tags: [ 'manifest' ],
12
13
  component: ProgressBar,
13
14
  title: 'Components/Feedback/ProgressBar',
14
15
  id: 'components-progressbar',
@@ -67,6 +67,7 @@ export function RadioControl(
67
67
  onChange,
68
68
  onClick,
69
69
  hideLabelFromVision,
70
+ disabled,
70
71
  options = [],
71
72
  id: preferredId,
72
73
  ...additionalProps
@@ -89,6 +90,7 @@ export function RadioControl(
89
90
  id={ id }
90
91
  role="radiogroup"
91
92
  className={ clsx( className, 'components-radio-control' ) }
93
+ disabled={ disabled }
92
94
  aria-describedby={ !! help ? generateHelpId( id ) : undefined }
93
95
  >
94
96
  { hideLabelFromVision ? (
@@ -14,6 +14,7 @@ import { useState } from '@wordpress/element';
14
14
  import RadioControl from '..';
15
15
 
16
16
  const meta: Meta< typeof RadioControl > = {
17
+ tags: [ 'manifest' ],
17
18
  component: RadioControl,
18
19
  title: 'Components/Selection & Input/Common/RadioControl',
19
20
  id: 'components-radiocontrol',
@@ -10,6 +10,7 @@
10
10
 
11
11
  font-family: $default-font;
12
12
  font-size: $default-font-size;
13
+
13
14
  }
14
15
 
15
16
  .components-radio-control__group-wrapper.has-help {
@@ -34,7 +35,10 @@
34
35
  margin: 0;
35
36
  padding: 0;
36
37
  appearance: none;
37
- cursor: pointer;
38
+
39
+ &:not(:disabled) {
40
+ cursor: var(--wpds-cursor-control);
41
+ }
38
42
 
39
43
  &:focus {
40
44
  @include button-style-outset__focus(var(--wp-admin-theme-color));
@@ -49,13 +53,28 @@
49
53
  border-radius: $radius-round;
50
54
  }
51
55
  }
56
+
57
+ &:disabled {
58
+ background: $components-color-gray-100;
59
+ border: 1px solid $components-color-gray-300;
60
+ opacity: 1; // Override style from wp-admin forms.css.
61
+
62
+ &:checked::before {
63
+ border-color: $components-color-gray-400;
64
+ opacity: 1; // Override style from wp-admin forms.css.
65
+
66
+ }
67
+ }
52
68
  }
53
69
 
54
70
  .components-radio-control__label {
55
71
  grid-column: 2;
56
72
  grid-row: 1;
57
73
 
58
- cursor: pointer;
74
+ .components-radio-control:not(:disabled) & {
75
+ cursor: var(--wpds-cursor-control);
76
+ }
77
+
59
78
  line-height: $radio-input-size-sm;
60
79
 
61
80
  @include break-small() {
@@ -82,6 +82,16 @@ describe.each( [
82
82
  ).toBeVisible();
83
83
  } );
84
84
 
85
+ it( 'should disable the radio group when `disabled` is true', () => {
86
+ render(
87
+ <Component { ...defaultProps } disabled onChange={ () => {} } />
88
+ );
89
+
90
+ expect(
91
+ screen.getByRole( 'radiogroup', { name: defaultProps.label } )
92
+ ).toBeDisabled();
93
+ } );
94
+
85
95
  it( 'should describe the radio group with the help text', () => {
86
96
  const onChangeSpy = jest.fn();
87
97
  render(
@@ -7,6 +7,12 @@ export type RadioControlProps = Pick<
7
7
  BaseControlProps,
8
8
  'label' | 'help' | 'hideLabelFromVision'
9
9
  > & {
10
+ /**
11
+ * Whether the radio group should be disabled.
12
+ *
13
+ * @default false
14
+ */
15
+ disabled?: boolean;
10
16
  /**
11
17
  * A function that receives the value of the new option that is being
12
18
  * selected as input.
@@ -18,6 +18,7 @@ import RangeControl from '..';
18
18
  const ICONS = { starEmpty, starFilled, styles, wordpress };
19
19
 
20
20
  const meta: Meta< typeof RangeControl > = {
21
+ tags: [ 'manifest' ],
21
22
  component: RangeControl,
22
23
  title: 'Components/Selection & Input/Common/RangeControl',
23
24
  id: 'components-rangecontrol',
@@ -14,6 +14,7 @@ import { useState } from '@wordpress/element';
14
14
  import ResizableBox from '..';
15
15
 
16
16
  const meta: Meta< typeof ResizableBox > = {
17
+ tags: [ 'manifest' ],
17
18
  title: 'Components/Utilities/ResizableBox',
18
19
  id: 'components-resizablebox',
19
20
  component: ResizableBox,
@@ -1,7 +1,6 @@
1
1
  @use "sass:math";
2
2
  @use "@wordpress/base-styles/colors" as *;
3
3
  @use "@wordpress/base-styles/variables" as *;
4
- @use "@wordpress/base-styles/z-index" as *;
5
4
  @use "../utils/theme-variables" as *;
6
5
 
7
6
  $resize-handler-size: 15px;
@@ -15,7 +14,7 @@ $resize-handler-container-size: $resize-handler-size + ($grid-unit-05 * 2); // M
15
14
  height: $resize-handler-container-size;
16
15
 
17
16
  // Elevate the resize handle above the focus style.
18
- z-index: z-index(".components-resizable-box__handle");
17
+ z-index: 2;
19
18
 
20
19
  // Show the resize handle if set in props
21
20
  .components-resizable-box__container.has-show-handle & {
@@ -26,7 +25,7 @@ $resize-handler-container-size: $resize-handler-size + ($grid-unit-05 * 2); // M
26
25
  position: relative;
27
26
  width: 100%;
28
27
  height: 100%;
29
- z-index: z-index(".components-resizable-box__handle");
28
+ z-index: 2;
30
29
  outline: none;
31
30
  }
32
31
  }
@@ -77,11 +76,11 @@ $resize-handler-container-size: $resize-handler-size + ($grid-unit-05 * 2); // M
77
76
 
78
77
  // Show corner handles on top of side handles so they can be used
79
78
  .components-resizable-box__side-handle {
80
- z-index: z-index(".components-resizable-box__side-handle");
79
+ z-index: 2;
81
80
  }
82
81
 
83
82
  .components-resizable-box__corner-handle {
84
- z-index: z-index(".components-resizable-box__corner-handle");
83
+ z-index: 2;
85
84
  }
86
85
 
87
86
  // Make horizontal side-handles full width