@wordpress/components 37.0.1-next.v.202607070741.0 → 38.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 (786) hide show
  1. package/AGENTS.md +2 -2
  2. package/CHANGELOG.md +65 -1
  3. package/build/angle-picker-control/index.cjs +0 -1
  4. package/build/angle-picker-control/index.cjs.map +2 -2
  5. package/build/autocomplete/index.cjs +6 -4
  6. package/build/autocomplete/index.cjs.map +3 -3
  7. package/build/border-box-control/styles.cjs +9 -9
  8. package/build/border-box-control/styles.cjs.map +2 -2
  9. package/build/color-palette/styles.cjs +1 -1
  10. package/build/color-palette/styles.cjs.map +2 -2
  11. package/build/color-picker/component.cjs +14 -5
  12. package/build/color-picker/component.cjs.map +2 -2
  13. package/build/color-picker/hex-input.cjs +0 -1
  14. package/build/color-picker/hex-input.cjs.map +2 -2
  15. package/build/color-picker/input-with-slider.cjs +0 -1
  16. package/build/color-picker/input-with-slider.cjs.map +2 -2
  17. package/build/color-picker/picker.cjs +95 -23
  18. package/build/color-picker/picker.cjs.map +2 -2
  19. package/build/confirm-dialog/component.cjs +86 -4
  20. package/build/confirm-dialog/component.cjs.map +3 -3
  21. package/build/content-editable-control/docs-manifest.json +5 -0
  22. package/build/content-editable-control/index.cjs +181 -0
  23. package/build/content-editable-control/index.cjs.map +7 -0
  24. package/build/{theme → content-editable-control}/types.cjs +1 -1
  25. package/build/{theme → content-editable-control}/types.cjs.map +1 -1
  26. package/build/custom-select-control/index.cjs +1 -2
  27. package/build/custom-select-control/index.cjs.map +2 -2
  28. package/build/custom-select-control-v2/custom-select.cjs +0 -1
  29. package/build/custom-select-control-v2/custom-select.cjs.map +2 -2
  30. package/build/date-time/date-picker/styles.cjs +8 -8
  31. package/build/date-time/date-picker/styles.cjs.map +2 -2
  32. package/build/date-time/time-picker/index.cjs +0 -2
  33. package/build/date-time/time-picker/index.cjs.map +2 -2
  34. package/build/date-time/time-picker/time-input/index.cjs +0 -2
  35. package/build/date-time/time-picker/time-input/index.cjs.map +2 -2
  36. package/build/disabled/index.cjs +87 -4
  37. package/build/disabled/index.cjs.map +4 -4
  38. package/build/form-token-field/index.cjs +87 -2
  39. package/build/form-token-field/index.cjs.map +3 -3
  40. package/build/gradient-picker/index.cjs +26 -20
  41. package/build/gradient-picker/index.cjs.map +2 -2
  42. package/build/heading/hook.cjs +1 -1
  43. package/build/heading/hook.cjs.map +1 -1
  44. package/build/input-control/index.cjs +4 -14
  45. package/build/input-control/index.cjs.map +2 -2
  46. package/build/input-control/input-base.cjs +2 -6
  47. package/build/input-control/input-base.cjs.map +2 -2
  48. package/build/input-control/styles/input-control-styles.cjs +25 -39
  49. package/build/input-control/styles/input-control-styles.cjs.map +2 -2
  50. package/build/menu/group-label.cjs +2 -1
  51. package/build/menu/group-label.cjs.map +2 -2
  52. package/build/number-control/index.cjs +1 -11
  53. package/build/number-control/index.cjs.map +2 -2
  54. package/build/palette-edit/styles.cjs +9 -9
  55. package/build/palette-edit/styles.cjs.map +2 -2
  56. package/build/private-apis.cjs +3 -2
  57. package/build/private-apis.cjs.map +3 -3
  58. package/build/range-control/index.cjs +0 -2
  59. package/build/range-control/index.cjs.map +2 -2
  60. package/build/sandbox/index.cjs +96 -73
  61. package/build/sandbox/index.cjs.map +3 -3
  62. package/build/search-control/index.cjs +93 -11
  63. package/build/search-control/index.cjs.map +4 -4
  64. package/build/select-control/index.cjs +0 -2
  65. package/build/select-control/index.cjs.map +2 -2
  66. package/build/select-control/styles/select-control-styles.cjs +9 -16
  67. package/build/select-control/styles/select-control-styles.cjs.map +2 -2
  68. package/build/slot-fill/fill.cjs.map +2 -2
  69. package/build/spacer/hook.cjs +150 -14
  70. package/build/spacer/hook.cjs.map +4 -4
  71. package/build/toggle-group-control/toggle-group-control/component.cjs +91 -8
  72. package/build/toggle-group-control/toggle-group-control/component.cjs.map +4 -4
  73. package/build/toggle-group-control/toggle-group-control-option-base/component.cjs +98 -17
  74. package/build/toggle-group-control/toggle-group-control-option-base/component.cjs.map +4 -4
  75. package/build/tools-panel/tools-panel/component.cjs +6 -0
  76. package/build/tools-panel/tools-panel/component.cjs.map +2 -2
  77. package/build/tools-panel/tools-panel/hook.cjs +87 -11
  78. package/build/tools-panel/tools-panel/hook.cjs.map +4 -4
  79. package/build/tools-panel/tools-panel-header/component.cjs +87 -2
  80. package/build/tools-panel/tools-panel-header/component.cjs.map +3 -3
  81. package/build/tools-panel/tools-panel-header/hook.cjs +90 -20
  82. package/build/tools-panel/tools-panel-header/hook.cjs.map +4 -4
  83. package/build/tools-panel/tools-panel-item/hook.cjs +88 -9
  84. package/build/tools-panel/tools-panel-item/hook.cjs.map +4 -4
  85. package/build/unit-control/index.cjs +0 -1
  86. package/build/unit-control/index.cjs.map +2 -2
  87. package/build/utils/base-label.cjs +1 -1
  88. package/build/utils/base-label.cjs.map +2 -2
  89. package/build/utils/config-values.cjs +1 -3
  90. package/build/utils/config-values.cjs.map +2 -2
  91. package/build/utils/font-values.cjs +1 -1
  92. package/build/utils/font-values.cjs.map +1 -1
  93. package/build/validated-form-controls/components/content-editable-control.cjs +84 -0
  94. package/build/validated-form-controls/components/content-editable-control.cjs.map +7 -0
  95. package/build/validated-form-controls/components/index.cjs +2 -0
  96. package/build/validated-form-controls/components/index.cjs.map +2 -2
  97. package/build/validated-form-controls/components/input-control.cjs +0 -1
  98. package/build/validated-form-controls/components/input-control.cjs.map +2 -2
  99. package/build/validated-form-controls/components/number-control.cjs +0 -1
  100. package/build/validated-form-controls/components/number-control.cjs.map +2 -2
  101. package/build/validated-form-controls/control-with-error.cjs +4 -4
  102. package/build/validated-form-controls/control-with-error.cjs.map +2 -2
  103. package/build-module/angle-picker-control/index.mjs +0 -1
  104. package/build-module/angle-picker-control/index.mjs.map +2 -2
  105. package/build-module/autocomplete/index.mjs +8 -6
  106. package/build-module/autocomplete/index.mjs.map +2 -2
  107. package/build-module/border-box-control/styles.mjs +9 -9
  108. package/build-module/border-box-control/styles.mjs.map +2 -2
  109. package/build-module/color-palette/styles.mjs +1 -1
  110. package/build-module/color-palette/styles.mjs.map +2 -2
  111. package/build-module/color-picker/component.mjs +14 -5
  112. package/build-module/color-picker/component.mjs.map +2 -2
  113. package/build-module/color-picker/hex-input.mjs +0 -1
  114. package/build-module/color-picker/hex-input.mjs.map +2 -2
  115. package/build-module/color-picker/input-with-slider.mjs +0 -1
  116. package/build-module/color-picker/input-with-slider.mjs.map +2 -2
  117. package/build-module/color-picker/picker.mjs +96 -24
  118. package/build-module/color-picker/picker.mjs.map +2 -2
  119. package/build-module/confirm-dialog/component.mjs +86 -4
  120. package/build-module/confirm-dialog/component.mjs.map +3 -3
  121. package/build-module/content-editable-control/docs-manifest.json +5 -0
  122. package/build-module/content-editable-control/index.mjs +146 -0
  123. package/build-module/content-editable-control/index.mjs.map +7 -0
  124. package/build-module/custom-select-control/index.mjs +1 -2
  125. package/build-module/custom-select-control/index.mjs.map +2 -2
  126. package/build-module/custom-select-control-v2/custom-select.mjs +0 -1
  127. package/build-module/custom-select-control-v2/custom-select.mjs.map +2 -2
  128. package/build-module/date-time/date-picker/styles.mjs +8 -8
  129. package/build-module/date-time/date-picker/styles.mjs.map +2 -2
  130. package/build-module/date-time/time-picker/index.mjs +0 -2
  131. package/build-module/date-time/time-picker/index.mjs.map +2 -2
  132. package/build-module/date-time/time-picker/time-input/index.mjs +0 -2
  133. package/build-module/date-time/time-picker/time-input/index.mjs.map +2 -2
  134. package/build-module/disabled/index.mjs +87 -4
  135. package/build-module/disabled/index.mjs.map +3 -3
  136. package/build-module/form-token-field/index.mjs +88 -3
  137. package/build-module/form-token-field/index.mjs.map +3 -3
  138. package/build-module/gradient-picker/index.mjs +26 -20
  139. package/build-module/gradient-picker/index.mjs.map +2 -2
  140. package/build-module/heading/hook.mjs +1 -1
  141. package/build-module/heading/hook.mjs.map +1 -1
  142. package/build-module/input-control/index.mjs +4 -14
  143. package/build-module/input-control/index.mjs.map +2 -2
  144. package/build-module/input-control/input-base.mjs +2 -6
  145. package/build-module/input-control/input-base.mjs.map +2 -2
  146. package/build-module/input-control/styles/input-control-styles.mjs +25 -39
  147. package/build-module/input-control/styles/input-control-styles.mjs.map +2 -2
  148. package/build-module/menu/group-label.mjs +2 -1
  149. package/build-module/menu/group-label.mjs.map +2 -2
  150. package/build-module/number-control/index.mjs +1 -11
  151. package/build-module/number-control/index.mjs.map +2 -2
  152. package/build-module/palette-edit/styles.mjs +9 -9
  153. package/build-module/palette-edit/styles.mjs.map +2 -2
  154. package/build-module/private-apis.mjs +4 -3
  155. package/build-module/private-apis.mjs.map +2 -2
  156. package/build-module/range-control/index.mjs +0 -2
  157. package/build-module/range-control/index.mjs.map +2 -2
  158. package/build-module/sandbox/index.mjs +84 -72
  159. package/build-module/sandbox/index.mjs.map +2 -2
  160. package/build-module/search-control/index.mjs +93 -11
  161. package/build-module/search-control/index.mjs.map +3 -3
  162. package/build-module/select-control/index.mjs +0 -2
  163. package/build-module/select-control/index.mjs.map +2 -2
  164. package/build-module/select-control/styles/select-control-styles.mjs +9 -16
  165. package/build-module/select-control/styles/select-control-styles.mjs.map +2 -2
  166. package/build-module/slot-fill/fill.mjs.map +2 -2
  167. package/build-module/spacer/hook.mjs +140 -14
  168. package/build-module/spacer/hook.mjs.map +3 -3
  169. package/build-module/toggle-group-control/toggle-group-control/component.mjs +92 -9
  170. package/build-module/toggle-group-control/toggle-group-control/component.mjs.map +3 -3
  171. package/build-module/toggle-group-control/toggle-group-control-option-base/component.mjs +99 -18
  172. package/build-module/toggle-group-control/toggle-group-control-option-base/component.mjs.map +3 -3
  173. package/build-module/tools-panel/tools-panel/component.mjs +6 -0
  174. package/build-module/tools-panel/tools-panel/component.mjs.map +2 -2
  175. package/build-module/tools-panel/tools-panel/hook.mjs +87 -11
  176. package/build-module/tools-panel/tools-panel/hook.mjs.map +3 -3
  177. package/build-module/tools-panel/tools-panel-header/component.mjs +87 -2
  178. package/build-module/tools-panel/tools-panel-header/component.mjs.map +3 -3
  179. package/build-module/tools-panel/tools-panel-header/hook.mjs +90 -20
  180. package/build-module/tools-panel/tools-panel-header/hook.mjs.map +3 -3
  181. package/build-module/tools-panel/tools-panel-item/hook.mjs +89 -10
  182. package/build-module/tools-panel/tools-panel-item/hook.mjs.map +3 -3
  183. package/build-module/unit-control/index.mjs +0 -1
  184. package/build-module/unit-control/index.mjs.map +2 -2
  185. package/build-module/utils/base-label.mjs +1 -1
  186. package/build-module/utils/base-label.mjs.map +2 -2
  187. package/build-module/utils/config-values.mjs +1 -3
  188. package/build-module/utils/config-values.mjs.map +2 -2
  189. package/build-module/utils/font-values.mjs +1 -1
  190. package/build-module/utils/font-values.mjs.map +1 -1
  191. package/build-module/validated-form-controls/components/content-editable-control.mjs +49 -0
  192. package/build-module/validated-form-controls/components/content-editable-control.mjs.map +7 -0
  193. package/build-module/validated-form-controls/components/index.mjs +1 -0
  194. package/build-module/validated-form-controls/components/index.mjs.map +2 -2
  195. package/build-module/validated-form-controls/components/input-control.mjs +0 -1
  196. package/build-module/validated-form-controls/components/input-control.mjs.map +2 -2
  197. package/build-module/validated-form-controls/components/number-control.mjs +0 -1
  198. package/build-module/validated-form-controls/components/number-control.mjs.map +2 -2
  199. package/build-module/validated-form-controls/control-with-error.mjs +4 -4
  200. package/build-module/validated-form-controls/control-with-error.mjs.map +2 -2
  201. package/build-style/style-rtl.css +70 -81
  202. package/build-style/style.css +70 -81
  203. package/build-types/angle-picker-control/index.d.ts.map +1 -1
  204. package/build-types/autocomplete/autocompleter-ui.d.ts +1 -1
  205. package/build-types/autocomplete/autocompleter-ui.d.ts.map +1 -1
  206. package/build-types/autocomplete/index.d.ts +8 -4
  207. package/build-types/autocomplete/index.d.ts.map +1 -1
  208. package/build-types/border-box-control/border-box-control/component.d.ts +1 -3
  209. package/build-types/border-box-control/border-box-control/component.d.ts.map +1 -1
  210. package/build-types/border-box-control/stories/index.story.d.ts +1 -3
  211. package/build-types/border-box-control/stories/index.story.d.ts.map +1 -1
  212. package/build-types/border-box-control/styles.d.ts.map +1 -1
  213. package/build-types/border-box-control/types.d.ts +1 -15
  214. package/build-types/border-box-control/types.d.ts.map +1 -1
  215. package/build-types/box-control/index.d.ts +1 -1
  216. package/build-types/box-control/index.d.ts.map +1 -1
  217. package/build-types/box-control/input-control.d.ts +3 -0
  218. package/build-types/box-control/input-control.d.ts.map +1 -0
  219. package/build-types/box-control/styles/box-control-styles.d.ts +4 -8
  220. package/build-types/box-control/styles/box-control-styles.d.ts.map +1 -1
  221. package/build-types/box-control/types.d.ts +1 -8
  222. package/build-types/box-control/types.d.ts.map +1 -1
  223. package/build-types/button/stories/e2e/index.story.d.ts.map +1 -1
  224. package/build-types/calendar/date-range-calendar/index.d.ts +1 -1
  225. package/build-types/calendar/date-range-calendar/index.d.ts.map +1 -1
  226. package/build-types/calendar/utils/use-localization-props.d.ts +6 -2
  227. package/build-types/calendar/utils/use-localization-props.d.ts.map +1 -1
  228. package/build-types/card/context.d.ts +3 -0
  229. package/build-types/card/context.d.ts.map +1 -0
  230. package/build-types/card/styles.d.ts +3 -3
  231. package/build-types/card/styles.d.ts.map +1 -1
  232. package/build-types/circular-option-picker/circular-option-picker-actions.d.ts +1 -1
  233. package/build-types/circular-option-picker/circular-option-picker-actions.d.ts.map +1 -1
  234. package/build-types/circular-option-picker/circular-option-picker.d.ts +8 -13
  235. package/build-types/circular-option-picker/circular-option-picker.d.ts.map +1 -1
  236. package/build-types/color-picker/component.d.ts.map +1 -1
  237. package/build-types/color-picker/hex-input.d.ts.map +1 -1
  238. package/build-types/color-picker/input-with-slider.d.ts.map +1 -1
  239. package/build-types/color-picker/picker.d.ts +17 -1
  240. package/build-types/color-picker/picker.d.ts.map +1 -1
  241. package/build-types/color-picker/styles.d.ts +3 -6
  242. package/build-types/color-picker/styles.d.ts.map +1 -1
  243. package/build-types/color-picker/types.d.ts +2 -0
  244. package/build-types/color-picker/types.d.ts.map +1 -1
  245. package/build-types/composite/legacy/stories/utils.d.ts.map +1 -1
  246. package/build-types/confirm-dialog/component.d.ts.map +1 -1
  247. package/build-types/content-editable-control/index.d.ts +31 -0
  248. package/build-types/content-editable-control/index.d.ts.map +1 -0
  249. package/build-types/content-editable-control/stories/index.story.d.ts +13 -0
  250. package/build-types/content-editable-control/stories/index.story.d.ts.map +1 -0
  251. package/build-types/content-editable-control/test/index.d.ts +2 -0
  252. package/build-types/content-editable-control/test/index.d.ts.map +1 -0
  253. package/build-types/content-editable-control/types.d.ts +32 -0
  254. package/build-types/content-editable-control/types.d.ts.map +1 -0
  255. package/build-types/context/context-system-provider.d.ts +21 -2
  256. package/build-types/context/context-system-provider.d.ts.map +1 -1
  257. package/build-types/context/wordpress-component.d.ts +2 -1
  258. package/build-types/context/wordpress-component.d.ts.map +1 -1
  259. package/build-types/custom-gradient-picker/gradient-bar/control-points.d.ts +3 -2
  260. package/build-types/custom-gradient-picker/gradient-bar/control-points.d.ts.map +1 -1
  261. package/build-types/custom-gradient-picker/gradient-bar/index.d.ts +1 -1
  262. package/build-types/custom-gradient-picker/gradient-bar/index.d.ts.map +1 -1
  263. package/build-types/custom-gradient-picker/index.d.ts +1 -1
  264. package/build-types/custom-gradient-picker/index.d.ts.map +1 -1
  265. package/build-types/custom-gradient-picker/serializer.d.ts +3 -3
  266. package/build-types/custom-gradient-picker/serializer.d.ts.map +1 -1
  267. package/build-types/custom-select-control/index.d.ts.map +1 -1
  268. package/build-types/custom-select-control/types.d.ts +1 -8
  269. package/build-types/custom-select-control/types.d.ts.map +1 -1
  270. package/build-types/custom-select-control-v2/custom-select.d.ts.map +1 -1
  271. package/build-types/custom-select-control-v2/index.d.ts +2 -1
  272. package/build-types/custom-select-control-v2/index.d.ts.map +1 -1
  273. package/build-types/custom-select-control-v2/item.d.ts.map +1 -1
  274. package/build-types/date-time/date/index.d.ts +23 -0
  275. package/build-types/date-time/date/index.d.ts.map +1 -0
  276. package/build-types/date-time/date/styles.d.ts +45 -0
  277. package/build-types/date-time/date/styles.d.ts.map +1 -0
  278. package/build-types/date-time/date/test/index.d.ts +2 -0
  279. package/build-types/date-time/date/test/index.d.ts.map +1 -0
  280. package/build-types/date-time/date/test/use-lilius.d.ts +2 -0
  281. package/build-types/date-time/date/test/use-lilius.d.ts.map +1 -0
  282. package/build-types/date-time/date/use-lilius/index.d.ts +169 -0
  283. package/build-types/date-time/date/use-lilius/index.d.ts.map +1 -0
  284. package/build-types/date-time/date-picker/index.d.ts +1 -1
  285. package/build-types/date-time/date-picker/index.d.ts.map +1 -1
  286. package/build-types/date-time/time/index.d.ts +27 -0
  287. package/build-types/date-time/time/index.d.ts.map +1 -0
  288. package/build-types/date-time/time/styles.d.ts +93 -0
  289. package/build-types/date-time/time/styles.d.ts.map +1 -0
  290. package/build-types/date-time/time/test/index.d.ts +2 -0
  291. package/build-types/date-time/time/test/index.d.ts.map +1 -0
  292. package/build-types/date-time/time/time-input/index.d.ts +4 -0
  293. package/build-types/date-time/time/time-input/index.d.ts.map +1 -0
  294. package/build-types/date-time/time/time-input/test/index.d.ts +2 -0
  295. package/build-types/date-time/time/time-input/test/index.d.ts.map +1 -0
  296. package/build-types/date-time/time/timezone.d.ts +7 -0
  297. package/build-types/date-time/time/timezone.d.ts.map +1 -0
  298. package/build-types/date-time/time-picker/index.d.ts +3 -2
  299. package/build-types/date-time/time-picker/index.d.ts.map +1 -1
  300. package/build-types/date-time/time-picker/styles.d.ts +4 -8
  301. package/build-types/date-time/time-picker/styles.d.ts.map +1 -1
  302. package/build-types/date-time/time-picker/time-input/index.d.ts +1 -1
  303. package/build-types/date-time/time-picker/time-input/index.d.ts.map +1 -1
  304. package/build-types/disabled/index.d.ts +4 -4
  305. package/build-types/disabled/index.d.ts.map +1 -1
  306. package/build-types/divider/styles.d.ts +10 -0
  307. package/build-types/divider/styles.d.ts.map +1 -0
  308. package/build-types/draggable/index.d.ts +1 -1
  309. package/build-types/draggable/index.d.ts.map +1 -1
  310. package/build-types/drop-zone/provider.d.ts +1 -1
  311. package/build-types/drop-zone/provider.d.ts.map +1 -1
  312. package/build-types/duotone-picker/color-list-picker/index.d.ts +1 -1
  313. package/build-types/duotone-picker/color-list-picker/index.d.ts.map +1 -1
  314. package/build-types/duotone-picker/custom-duotone-bar.d.ts +1 -1
  315. package/build-types/duotone-picker/custom-duotone-bar.d.ts.map +1 -1
  316. package/build-types/flex/styles.d.ts +17 -0
  317. package/build-types/flex/styles.d.ts.map +1 -0
  318. package/build-types/focal-point-picker/controls.d.ts +1 -1
  319. package/build-types/focal-point-picker/controls.d.ts.map +1 -1
  320. package/build-types/focal-point-picker/styles/focal-point-picker-style.d.ts +2 -4
  321. package/build-types/focal-point-picker/styles/focal-point-picker-style.d.ts.map +1 -1
  322. package/build-types/font-size-picker/index.d.ts +12 -2
  323. package/build-types/font-size-picker/index.d.ts.map +1 -1
  324. package/build-types/font-size-picker/stories/e2e/index.story.d.ts +12 -1
  325. package/build-types/font-size-picker/stories/e2e/index.story.d.ts.map +1 -1
  326. package/build-types/font-size-picker/types.d.ts +2 -15
  327. package/build-types/font-size-picker/types.d.ts.map +1 -1
  328. package/build-types/form-token-field/index.d.ts.map +1 -1
  329. package/build-types/form-token-field/suggestions-list.d.ts +1 -1
  330. package/build-types/form-token-field/suggestions-list.d.ts.map +1 -1
  331. package/build-types/form-token-field/token.d.ts +1 -1
  332. package/build-types/form-token-field/token.d.ts.map +1 -1
  333. package/build-types/gradient-picker/index.d.ts.map +1 -1
  334. package/build-types/gradient-picker/stories/index.story.d.ts +1 -0
  335. package/build-types/gradient-picker/stories/index.story.d.ts.map +1 -1
  336. package/build-types/gradient-picker/test/index.d.ts +2 -0
  337. package/build-types/gradient-picker/test/index.d.ts.map +1 -0
  338. package/build-types/gradient-picker/types.d.ts +19 -4
  339. package/build-types/gradient-picker/types.d.ts.map +1 -1
  340. package/build-types/guide/index.d.ts +1 -1
  341. package/build-types/guide/index.d.ts.map +1 -1
  342. package/build-types/guide/page-control.d.ts +1 -1
  343. package/build-types/guide/page-control.d.ts.map +1 -1
  344. package/build-types/higher-order/with-fallback-styles/index.d.ts +3 -3
  345. package/build-types/higher-order/with-fallback-styles/index.d.ts.map +1 -1
  346. package/build-types/input-control/index.d.ts +0 -1
  347. package/build-types/input-control/index.d.ts.map +1 -1
  348. package/build-types/input-control/input-base.d.ts.map +1 -1
  349. package/build-types/input-control/stories/index.story.d.ts.map +1 -1
  350. package/build-types/input-control/styles/input-control-styles.d.ts +1 -8
  351. package/build-types/input-control/styles/input-control-styles.d.ts.map +1 -1
  352. package/build-types/input-control/types.d.ts +15 -29
  353. package/build-types/input-control/types.d.ts.map +1 -1
  354. package/build-types/keyboard-shortcuts/index.d.ts +1 -1
  355. package/build-types/keyboard-shortcuts/index.d.ts.map +1 -1
  356. package/build-types/menu/group-label.d.ts.map +1 -1
  357. package/build-types/menu-items-choice/index.d.ts +1 -1
  358. package/build-types/menu-items-choice/index.d.ts.map +1 -1
  359. package/build-types/mobile/image/constants.d.ts +5 -0
  360. package/build-types/mobile/image/constants.d.ts.map +1 -0
  361. package/build-types/modal/stories/index.story.d.ts.map +1 -1
  362. package/build-types/navigation/back-button/index.d.ts +7 -0
  363. package/build-types/navigation/back-button/index.d.ts.map +1 -0
  364. package/build-types/navigation/constants.d.ts +3 -0
  365. package/build-types/navigation/constants.d.ts.map +1 -0
  366. package/build-types/navigation/context.d.ts +4 -0
  367. package/build-types/navigation/context.d.ts.map +1 -0
  368. package/build-types/navigation/group/context.d.ts +7 -0
  369. package/build-types/navigation/group/context.d.ts.map +1 -0
  370. package/build-types/navigation/group/index.d.ts +7 -0
  371. package/build-types/navigation/group/index.d.ts.map +1 -0
  372. package/build-types/navigation/index.d.ts +46 -0
  373. package/build-types/navigation/index.d.ts.map +1 -0
  374. package/build-types/navigation/item/base-content.d.ts +3 -0
  375. package/build-types/navigation/item/base-content.d.ts.map +1 -0
  376. package/build-types/navigation/item/base.d.ts +3 -0
  377. package/build-types/navigation/item/base.d.ts.map +1 -0
  378. package/build-types/navigation/item/index.d.ts +7 -0
  379. package/build-types/navigation/item/index.d.ts.map +1 -0
  380. package/build-types/navigation/item/use-navigation-tree-item.d.ts +3 -0
  381. package/build-types/navigation/item/use-navigation-tree-item.d.ts.map +1 -0
  382. package/build-types/navigation/menu/context.d.ts +7 -0
  383. package/build-types/navigation/menu/context.d.ts.map +1 -0
  384. package/build-types/navigation/menu/index.d.ts +7 -0
  385. package/build-types/navigation/menu/index.d.ts.map +1 -0
  386. package/build-types/navigation/menu/menu-title-search.d.ts +3 -0
  387. package/build-types/navigation/menu/menu-title-search.d.ts.map +1 -0
  388. package/build-types/navigation/menu/menu-title.d.ts +3 -0
  389. package/build-types/navigation/menu/menu-title.d.ts.map +1 -0
  390. package/build-types/navigation/menu/search-no-results-found.d.ts +3 -0
  391. package/build-types/navigation/menu/search-no-results-found.d.ts.map +1 -0
  392. package/build-types/navigation/menu/use-navigation-tree-menu.d.ts +3 -0
  393. package/build-types/navigation/menu/use-navigation-tree-menu.d.ts.map +1 -0
  394. package/build-types/navigation/stories/index.story.d.ts +23 -0
  395. package/build-types/navigation/stories/index.story.d.ts.map +1 -0
  396. package/build-types/navigation/stories/utils/controlled-state.d.ts +7 -0
  397. package/build-types/navigation/stories/utils/controlled-state.d.ts.map +1 -0
  398. package/build-types/navigation/stories/utils/default.d.ts +10 -0
  399. package/build-types/navigation/stories/utils/default.d.ts.map +1 -0
  400. package/build-types/navigation/stories/utils/group.d.ts +10 -0
  401. package/build-types/navigation/stories/utils/group.d.ts.map +1 -0
  402. package/build-types/navigation/stories/utils/hide-if-empty.d.ts +10 -0
  403. package/build-types/navigation/stories/utils/hide-if-empty.d.ts.map +1 -0
  404. package/build-types/navigation/stories/utils/more-examples.d.ts +10 -0
  405. package/build-types/navigation/stories/utils/more-examples.d.ts.map +1 -0
  406. package/build-types/navigation/stories/utils/search.d.ts +10 -0
  407. package/build-types/navigation/stories/utils/search.d.ts.map +1 -0
  408. package/build-types/navigation/styles/navigation-styles.d.ts +55 -0
  409. package/build-types/navigation/styles/navigation-styles.d.ts.map +1 -0
  410. package/build-types/navigation/test/index.d.ts +2 -0
  411. package/build-types/navigation/test/index.d.ts.map +1 -0
  412. package/build-types/navigation/types.d.ts +266 -0
  413. package/build-types/navigation/types.d.ts.map +1 -0
  414. package/build-types/navigation/use-create-navigation-tree.d.ts +15 -0
  415. package/build-types/navigation/use-create-navigation-tree.d.ts.map +1 -0
  416. package/build-types/navigation/use-navigation-tree-nodes.d.ts +10 -0
  417. package/build-types/navigation/use-navigation-tree-nodes.d.ts.map +1 -0
  418. package/build-types/navigation/utils.d.ts +3 -0
  419. package/build-types/navigation/utils.d.ts.map +1 -0
  420. package/build-types/navigator/navigator-screen/use-screen-animate-presence.d.ts +1 -1
  421. package/build-types/navigator/navigator-screen/use-screen-animate-presence.d.ts.map +1 -1
  422. package/build-types/notice/index.d.ts +1 -1
  423. package/build-types/notice/index.d.ts.map +1 -1
  424. package/build-types/notice/list.d.ts +1 -1
  425. package/build-types/notice/list.d.ts.map +1 -1
  426. package/build-types/number-control/index.d.ts +1 -2
  427. package/build-types/number-control/index.d.ts.map +1 -1
  428. package/build-types/number-control/stories/index.story.d.ts +1 -2
  429. package/build-types/number-control/stories/index.story.d.ts.map +1 -1
  430. package/build-types/number-control/types.d.ts +0 -7
  431. package/build-types/number-control/types.d.ts.map +1 -1
  432. package/build-types/palette-edit/index.d.ts +1 -1
  433. package/build-types/palette-edit/index.d.ts.map +1 -1
  434. package/build-types/private-apis.d.ts.map +1 -1
  435. package/build-types/query-controls/author-select.d.ts +1 -1
  436. package/build-types/query-controls/author-select.d.ts.map +1 -1
  437. package/build-types/range-control/index.d.ts +2 -4
  438. package/build-types/range-control/index.d.ts.map +1 -1
  439. package/build-types/range-control/styles/range-control-styles.d.ts +1 -2
  440. package/build-types/range-control/styles/range-control-styles.d.ts.map +1 -1
  441. package/build-types/range-control/types.d.ts +2 -16
  442. package/build-types/range-control/types.d.ts.map +1 -1
  443. package/build-types/resizable-box/resize-tooltip/utils.d.ts +1 -1
  444. package/build-types/resizable-box/resize-tooltip/utils.d.ts.map +1 -1
  445. package/build-types/responsive-wrapper/index.d.ts +1 -1
  446. package/build-types/responsive-wrapper/index.d.ts.map +1 -1
  447. package/build-types/sandbox/index.d.ts +34 -0
  448. package/build-types/sandbox/index.d.ts.map +1 -1
  449. package/build-types/sandbox/types.d.ts +11 -0
  450. package/build-types/sandbox/types.d.ts.map +1 -1
  451. package/build-types/search-control/index.d.ts.map +1 -1
  452. package/build-types/search-control/types.d.ts +1 -1
  453. package/build-types/search-control/types.d.ts.map +1 -1
  454. package/build-types/select-control/index.d.ts.map +1 -1
  455. package/build-types/select-control/styles/select-control-styles.d.ts.map +1 -1
  456. package/build-types/select-control/types.d.ts +9 -1
  457. package/build-types/select-control/types.d.ts.map +1 -1
  458. package/build-types/slot-fill/fill.d.ts.map +1 -1
  459. package/build-types/slot-fill/index.d.ts +1 -1
  460. package/build-types/slot-fill/index.d.ts.map +1 -1
  461. package/build-types/slot-fill/stories/index.story.d.ts +1 -6
  462. package/build-types/slot-fill/stories/index.story.d.ts.map +1 -1
  463. package/build-types/snackbar/list.d.ts +1 -1
  464. package/build-types/snackbar/list.d.ts.map +1 -1
  465. package/build-types/spacer/hook.d.ts +2 -4
  466. package/build-types/spacer/hook.d.ts.map +1 -1
  467. package/build-types/spacer/stories/index.story.d.ts +1 -6
  468. package/build-types/spacer/stories/index.story.d.ts.map +1 -1
  469. package/build-types/surface/styles.d.ts +11 -0
  470. package/build-types/surface/styles.d.ts.map +1 -0
  471. package/build-types/text/types.d.ts +4 -4
  472. package/build-types/text/types.d.ts.map +1 -1
  473. package/build-types/text/utils.d.ts +1 -1
  474. package/build-types/text/utils.d.ts.map +1 -1
  475. package/build-types/theme/styles.d.ts +10 -0
  476. package/build-types/theme/styles.d.ts.map +1 -0
  477. package/build-types/toggle-group-control/toggle-group-control/component.d.ts +0 -1
  478. package/build-types/toggle-group-control/toggle-group-control/component.d.ts.map +1 -1
  479. package/build-types/toggle-group-control/toggle-group-control-option-base/component.d.ts.map +1 -1
  480. package/build-types/toggle-group-control/types.d.ts +0 -7
  481. package/build-types/toggle-group-control/types.d.ts.map +1 -1
  482. package/build-types/tools-panel/styles.d.ts +1 -1
  483. package/build-types/tools-panel/styles.d.ts.map +1 -1
  484. package/build-types/tools-panel/tools-panel/component.d.ts.map +1 -1
  485. package/build-types/tools-panel/tools-panel/hook.d.ts.map +1 -1
  486. package/build-types/tools-panel/tools-panel-header/component.d.ts.map +1 -1
  487. package/build-types/tools-panel/tools-panel-header/hook.d.ts.map +1 -1
  488. package/build-types/tools-panel/tools-panel-item/hook.d.ts.map +1 -1
  489. package/build-types/tree-grid/roving-tab-index.d.ts +1 -1
  490. package/build-types/tree-grid/roving-tab-index.d.ts.map +1 -1
  491. package/build-types/tree-grid/stories/index.story.d.ts.map +1 -1
  492. package/build-types/tree-select/types.d.ts +1 -8
  493. package/build-types/tree-select/types.d.ts.map +1 -1
  494. package/build-types/truncate/styles.d.ts +2 -0
  495. package/build-types/truncate/styles.d.ts.map +1 -0
  496. package/build-types/unit-control/index.d.ts +2 -4
  497. package/build-types/unit-control/index.d.ts.map +1 -1
  498. package/build-types/unit-control/styles/unit-control-styles.d.ts +1 -2
  499. package/build-types/unit-control/styles/unit-control-styles.d.ts.map +1 -1
  500. package/build-types/unit-control/types.d.ts +1 -15
  501. package/build-types/unit-control/types.d.ts.map +1 -1
  502. package/build-types/utils/config-values.d.ts +1 -2
  503. package/build-types/utils/hooks/use-animated-offset-rect.d.ts +1 -1
  504. package/build-types/utils/hooks/use-animated-offset-rect.d.ts.map +1 -1
  505. package/build-types/utils/hooks/use-controlled-state.d.ts +6 -0
  506. package/build-types/utils/hooks/use-controlled-state.d.ts.map +1 -1
  507. package/build-types/utils/hooks/use-controlled-value.d.ts +1 -1
  508. package/build-types/utils/hooks/use-controlled-value.d.ts.map +1 -1
  509. package/build-types/utils/rtl.d.ts.map +1 -1
  510. package/build-types/validated-form-controls/components/content-editable-control.d.ts +16 -0
  511. package/build-types/validated-form-controls/components/content-editable-control.d.ts.map +1 -0
  512. package/build-types/validated-form-controls/components/index.d.ts +1 -0
  513. package/build-types/validated-form-controls/components/index.d.ts.map +1 -1
  514. package/build-types/validated-form-controls/components/input-control.d.ts +1 -1
  515. package/build-types/validated-form-controls/components/input-control.d.ts.map +1 -1
  516. package/build-types/validated-form-controls/components/number-control.d.ts +2 -3
  517. package/build-types/validated-form-controls/components/number-control.d.ts.map +1 -1
  518. package/build-types/validated-form-controls/components/range-control.d.ts +2 -4
  519. package/build-types/validated-form-controls/components/range-control.d.ts.map +1 -1
  520. package/build-types/validated-form-controls/components/stories/content-editable-control.story.d.ts +9 -0
  521. package/build-types/validated-form-controls/components/stories/content-editable-control.story.d.ts.map +1 -0
  522. package/build-types/validated-form-controls/components/stories/overview.story.d.ts +5 -0
  523. package/build-types/validated-form-controls/components/stories/overview.story.d.ts.map +1 -1
  524. package/build-types/validated-form-controls/components/toggle-group-control.d.ts +1 -2
  525. package/build-types/validated-form-controls/components/toggle-group-control.d.ts.map +1 -1
  526. package/build-types/validated-form-controls/control-with-error.d.ts.map +1 -1
  527. package/build-types/validated-form-controls/test/content-editable-control.d.ts +2 -0
  528. package/build-types/validated-form-controls/test/content-editable-control.d.ts.map +1 -0
  529. package/build-types/validated-form-controls/validity-indicator.d.ts +1 -1
  530. package/build-types/validated-form-controls/validity-indicator.d.ts.map +1 -1
  531. package/build-types/visually-hidden/test/index.d.ts +2 -0
  532. package/build-types/visually-hidden/test/index.d.ts.map +1 -0
  533. package/package.json +30 -30
  534. package/src/angle-picker-control/index.tsx +0 -1
  535. package/src/autocomplete/index.tsx +20 -11
  536. package/src/autocomplete/style.scss +1 -0
  537. package/src/badge/stories/index.story.tsx +1 -1
  538. package/src/base-control/README.md +2 -2
  539. package/src/base-control/stories/index.story.tsx +1 -1
  540. package/src/border-box-control/styles.ts +6 -2
  541. package/src/border-box-control/types.ts +4 -15
  542. package/src/box-control/types.ts +4 -8
  543. package/src/button/stories/e2e/index.story.tsx +10 -2
  544. package/src/button/stories/index.story.tsx +1 -1
  545. package/src/button/style.scss +32 -27
  546. package/src/button-group/style.scss +1 -6
  547. package/src/calendar/style.scss +1 -1
  548. package/src/card/stories/index.story.tsx +1 -1
  549. package/src/card/test/__snapshots__/index.tsx.snap +1 -1
  550. package/src/checkbox-control/stories/index.story.tsx +1 -1
  551. package/src/checkbox-control/test/__snapshots__/index.tsx.snap +1 -1
  552. package/src/color-indicator/test/__snapshots__/index.tsx.snap +1 -1
  553. package/src/color-palette/styles.ts +1 -1
  554. package/src/color-picker/component.tsx +23 -19
  555. package/src/color-picker/hex-input.tsx +0 -1
  556. package/src/color-picker/input-with-slider.tsx +0 -1
  557. package/src/color-picker/picker.tsx +144 -21
  558. package/src/color-picker/test/index.tsx +502 -0
  559. package/src/color-picker/types.ts +2 -0
  560. package/src/combobox-control/style.scss +2 -2
  561. package/src/confirm-dialog/component.tsx +2 -4
  562. package/src/confirm-dialog/stories/index.story.tsx +1 -1
  563. package/src/confirm-dialog/style.module.scss +7 -0
  564. package/src/confirm-dialog/test/index.tsx +5 -0
  565. package/src/content-editable-control/README.md +88 -0
  566. package/src/content-editable-control/docs-manifest.json +5 -0
  567. package/src/content-editable-control/index.tsx +110 -0
  568. package/src/content-editable-control/stories/index.story.tsx +32 -0
  569. package/src/content-editable-control/style.module.scss +34 -0
  570. package/src/content-editable-control/test/index.tsx +176 -0
  571. package/src/content-editable-control/types.ts +35 -0
  572. package/src/context/test/__snapshots__/context-system-provider.js.snap +1 -1
  573. package/src/context/wordpress-component.ts +7 -2
  574. package/src/custom-gradient-picker/test/index.tsx +111 -1
  575. package/src/custom-select-control/index.tsx +1 -2
  576. package/src/custom-select-control/stories/index.story.tsx +1 -1
  577. package/src/custom-select-control/test/__snapshots__/index.tsx.snap +6 -0
  578. package/src/custom-select-control/test/index.tsx +23 -0
  579. package/src/custom-select-control/types.ts +1 -8
  580. package/src/custom-select-control-v2/custom-select.tsx +1 -5
  581. package/src/custom-select-control-v2/stories/index.story.tsx +1 -1
  582. package/src/date-time/date-picker/styles.ts +1 -1
  583. package/src/date-time/time-picker/index.tsx +0 -2
  584. package/src/date-time/time-picker/time-input/index.tsx +0 -2
  585. package/src/disabled/index.tsx +7 -5
  586. package/src/disabled/style.module.scss +15 -0
  587. package/src/disabled/test/index.tsx +6 -4
  588. package/src/dropdown-menu/style.scss +1 -1
  589. package/src/elevation/stories/index.story.tsx +1 -1
  590. package/src/elevation/test/__snapshots__/index.tsx.snap +1 -1
  591. package/src/external-link/stories/index.story.tsx +1 -1
  592. package/src/external-link/style.scss +7 -13
  593. package/src/flex/stories/index.story.tsx +1 -1
  594. package/src/flex/test/__snapshots__/index.tsx.snap +1 -1
  595. package/src/font-size-picker/types.ts +6 -15
  596. package/src/form-toggle/test/__snapshots__/index.tsx.snap +1 -1
  597. package/src/form-token-field/index.tsx +5 -4
  598. package/src/form-token-field/style.module.scss +6 -0
  599. package/src/form-token-field/style.scss +2 -2
  600. package/src/gradient-picker/README.md +21 -3
  601. package/src/gradient-picker/index.tsx +43 -28
  602. package/src/gradient-picker/stories/index.story.tsx +41 -5
  603. package/src/gradient-picker/test/index.tsx +148 -0
  604. package/src/gradient-picker/types.ts +24 -4
  605. package/src/h-stack/stories/index.story.tsx +1 -1
  606. package/src/h-stack/test/__snapshots__/index.tsx.snap +1 -1
  607. package/src/heading/hook.ts +1 -1
  608. package/src/heading/stories/index.story.tsx +1 -1
  609. package/src/heading/test/__snapshots__/index.tsx.snap +1 -1
  610. package/src/higher-order/with-filters/test/__snapshots__/index.tsx.snap +1 -1
  611. package/src/icon/stories/index.story.tsx +1 -1
  612. package/src/input-control/README.md +0 -8
  613. package/src/input-control/index.tsx +4 -16
  614. package/src/input-control/input-base.tsx +4 -8
  615. package/src/input-control/stories/index.story.tsx +2 -4
  616. package/src/input-control/styles/input-control-styles.tsx +1 -19
  617. package/src/input-control/test/__snapshots__/index.js.snap +11 -0
  618. package/src/input-control/test/index.js +29 -7
  619. package/src/input-control/types.ts +15 -30
  620. package/src/item-group/test/__snapshots__/index.js.snap +1 -1
  621. package/src/menu/README.md +2 -2
  622. package/src/menu/group-label.tsx +2 -1
  623. package/src/menu-group/style.scss +1 -1
  624. package/src/menu-item/style.scss +1 -1
  625. package/src/menu-item/test/__snapshots__/index.js.snap +1 -1
  626. package/src/modal/stories/index.story.tsx +2 -5
  627. package/src/modal/style.scss +1 -1
  628. package/src/modal/test/index.tsx +42 -0
  629. package/src/notice/stories/index.story.tsx +1 -1
  630. package/src/notice/test/__snapshots__/index.tsx.snap +1 -1
  631. package/src/number-control/README.md +0 -8
  632. package/src/number-control/index.tsx +1 -12
  633. package/src/number-control/stories/index.story.tsx +1 -3
  634. package/src/number-control/test/index.tsx +1 -1
  635. package/src/number-control/types.ts +0 -7
  636. package/src/palette-edit/styles.ts +1 -1
  637. package/src/panel/stories/index.story.tsx +4 -4
  638. package/src/panel/style.scss +2 -5
  639. package/src/panel/test/__snapshots__/body.tsx.snap +1 -1
  640. package/src/panel/test/__snapshots__/header.tsx.snap +1 -1
  641. package/src/panel/test/__snapshots__/index.tsx.snap +1 -1
  642. package/src/panel/test/__snapshots__/row.tsx.snap +1 -1
  643. package/src/placeholder/style.scss +1 -1
  644. package/src/private-apis.ts +4 -2
  645. package/src/range-control/index.tsx +0 -2
  646. package/src/range-control/types.ts +2 -15
  647. package/src/sandbox/index.tsx +165 -98
  648. package/src/sandbox/test/index.tsx +63 -1
  649. package/src/sandbox/types.ts +11 -0
  650. package/src/scrollable/test/__snapshots__/index.tsx.snap +1 -1
  651. package/src/search-control/index.tsx +23 -21
  652. package/src/search-control/style.module.scss +16 -0
  653. package/src/search-control/test/index.tsx +8 -0
  654. package/src/search-control/types.ts +1 -1
  655. package/src/select-control/index.tsx +0 -2
  656. package/src/select-control/stories/index.story.tsx +1 -1
  657. package/src/select-control/styles/select-control-styles.ts +0 -7
  658. package/src/select-control/test/__snapshots__/select-control.tsx.snap +11 -0
  659. package/src/select-control/test/select-control.tsx +37 -0
  660. package/src/select-control/types.ts +8 -2
  661. package/src/shortcut/test/__snapshots__/index.tsx.snap +1 -1
  662. package/src/slot-fill/fill.tsx +3 -9
  663. package/src/slot-fill/stories/index.story.tsx +52 -10
  664. package/src/slot-fill/test/__snapshots__/slot.js.snap +1 -1
  665. package/src/slot-fill/test/slot.js +53 -11
  666. package/src/spacer/hook.ts +93 -77
  667. package/src/spacer/stories/index.story.tsx +8 -6
  668. package/src/spacer/style.module.scss +25 -0
  669. package/src/spacer/test/__snapshots__/index.tsx.snap +3 -223
  670. package/src/spacer/test/index.tsx +106 -110
  671. package/src/tab-panel/stories/index.story.tsx +1 -1
  672. package/src/tab-panel/style.scss +1 -1
  673. package/src/tabs/stories/index.story.tsx +1 -1
  674. package/src/text/stories/index.story.tsx +1 -1
  675. package/src/text/test/__snapshots__/index.tsx.snap +1 -1
  676. package/src/text/types.ts +5 -5
  677. package/src/text-control/style.scss +1 -1
  678. package/src/textarea-control/stories/index.story.tsx +1 -1
  679. package/src/toggle-group-control/test/__snapshots__/index.tsx.snap +37 -715
  680. package/src/toggle-group-control/test/index.tsx +33 -3
  681. package/src/toggle-group-control/toggle-group-control/component.tsx +11 -16
  682. package/src/toggle-group-control/toggle-group-control/style.module.scss +63 -0
  683. package/src/toggle-group-control/toggle-group-control-option-base/component.tsx +22 -24
  684. package/src/toggle-group-control/toggle-group-control-option-base/style.module.scss +88 -0
  685. package/src/toggle-group-control/types.ts +0 -7
  686. package/src/toolbar/toolbar-button/style.scss +1 -1
  687. package/src/tools-panel/style.module.scss +117 -0
  688. package/src/tools-panel/test/index.tsx +105 -39
  689. package/src/tools-panel/tools-panel/component.tsx +12 -1
  690. package/src/tools-panel/tools-panel/hook.ts +13 -15
  691. package/src/tools-panel/tools-panel-header/component.tsx +6 -2
  692. package/src/tools-panel/tools-panel-header/hook.ts +7 -25
  693. package/src/tools-panel/tools-panel-item/hook.ts +16 -34
  694. package/src/tooltip/stories/index.story.tsx +1 -1
  695. package/src/tooltip/test/index.tsx +1 -1
  696. package/src/tree-grid/stories/index.story.tsx +0 -2
  697. package/src/tree-grid/test/__snapshots__/cell.tsx.snap +1 -1
  698. package/src/tree-grid/test/__snapshots__/index.tsx.snap +1 -1
  699. package/src/tree-grid/test/__snapshots__/roving-tab-index-item.tsx.snap +1 -1
  700. package/src/tree-grid/test/__snapshots__/roving-tab-index.tsx.snap +1 -1
  701. package/src/tree-grid/test/__snapshots__/row.tsx.snap +1 -1
  702. package/src/tree-select/README.md +1 -1
  703. package/src/tree-select/types.ts +1 -8
  704. package/src/unit-control/index.tsx +0 -1
  705. package/src/unit-control/types.ts +1 -18
  706. package/src/utils/base-label.ts +1 -1
  707. package/src/utils/config-values.js +1 -2
  708. package/src/utils/font-values.js +1 -1
  709. package/src/utils/theme-variables.scss +1 -0
  710. package/src/v-stack/stories/index.story.tsx +1 -1
  711. package/src/v-stack/test/__snapshots__/index.tsx.snap +1 -1
  712. package/src/validated-form-controls/components/content-editable-control.tsx +88 -0
  713. package/src/validated-form-controls/components/index.ts +1 -0
  714. package/src/validated-form-controls/components/input-control.tsx +2 -10
  715. package/src/validated-form-controls/components/number-control.tsx +2 -10
  716. package/src/validated-form-controls/components/stories/content-editable-control.story.tsx +56 -0
  717. package/src/validated-form-controls/components/stories/overview.story.tsx +51 -0
  718. package/src/validated-form-controls/control-with-error.tsx +10 -1
  719. package/src/validated-form-controls/style.scss +9 -2
  720. package/src/validated-form-controls/test/content-editable-control.tsx +71 -0
  721. package/src/validated-form-controls/test/control-with-error.tsx +42 -0
  722. package/src/view/test/__snapshots__/index.js.snap +1 -1
  723. package/src/visually-hidden/stories/index.story.tsx +1 -1
  724. package/build/confirm-dialog/styles.cjs +0 -42
  725. package/build/confirm-dialog/styles.cjs.map +0 -7
  726. package/build/disabled/styles/disabled-styles.cjs +0 -42
  727. package/build/disabled/styles/disabled-styles.cjs.map +0 -7
  728. package/build/form-token-field/styles.cjs +0 -49
  729. package/build/form-token-field/styles.cjs.map +0 -7
  730. package/build/search-control/styles.cjs +0 -74
  731. package/build/search-control/styles.cjs.map +0 -7
  732. package/build/theme/color-algorithms.cjs +0 -131
  733. package/build/theme/color-algorithms.cjs.map +0 -7
  734. package/build/theme/index.cjs +0 -160
  735. package/build/theme/index.cjs.map +0 -7
  736. package/build/toggle-group-control/toggle-group-control/styles.cjs +0 -53
  737. package/build/toggle-group-control/toggle-group-control/styles.cjs.map +0 -7
  738. package/build/toggle-group-control/toggle-group-control-option-base/styles.cjs +0 -94
  739. package/build/toggle-group-control/toggle-group-control-option-base/styles.cjs.map +0 -7
  740. package/build/tools-panel/styles.cjs +0 -129
  741. package/build/tools-panel/styles.cjs.map +0 -7
  742. package/build/utils/deprecated-36px-size.cjs +0 -56
  743. package/build/utils/deprecated-36px-size.cjs.map +0 -7
  744. package/build/utils/use-deprecated-props.cjs +0 -41
  745. package/build/utils/use-deprecated-props.cjs.map +0 -7
  746. package/build-module/confirm-dialog/styles.mjs +0 -17
  747. package/build-module/confirm-dialog/styles.mjs.map +0 -7
  748. package/build-module/disabled/styles/disabled-styles.mjs +0 -17
  749. package/build-module/disabled/styles/disabled-styles.mjs.map +0 -7
  750. package/build-module/form-token-field/styles.mjs +0 -14
  751. package/build-module/form-token-field/styles.mjs.map +0 -7
  752. package/build-module/search-control/styles.mjs +0 -38
  753. package/build-module/search-control/styles.mjs.map +0 -7
  754. package/build-module/theme/color-algorithms.mjs +0 -94
  755. package/build-module/theme/color-algorithms.mjs.map +0 -7
  756. package/build-module/theme/index.mjs +0 -129
  757. package/build-module/theme/index.mjs.map +0 -7
  758. package/build-module/toggle-group-control/toggle-group-control/styles.mjs +0 -27
  759. package/build-module/toggle-group-control/toggle-group-control/styles.mjs.map +0 -7
  760. package/build-module/toggle-group-control/toggle-group-control-option-base/styles.mjs +0 -56
  761. package/build-module/toggle-group-control/toggle-group-control-option-base/styles.mjs.map +0 -7
  762. package/build-module/tools-panel/styles.mjs +0 -84
  763. package/build-module/tools-panel/styles.mjs.map +0 -7
  764. package/build-module/utils/deprecated-36px-size.mjs +0 -21
  765. package/build-module/utils/deprecated-36px-size.mjs.map +0 -7
  766. package/build-module/utils/use-deprecated-props.mjs +0 -16
  767. package/build-module/utils/use-deprecated-props.mjs.map +0 -7
  768. package/src/confirm-dialog/styles.ts +0 -18
  769. package/src/disabled/styles/disabled-styles.tsx +0 -23
  770. package/src/form-token-field/styles.ts +0 -15
  771. package/src/search-control/styles.ts +0 -27
  772. package/src/theme/README.md +0 -47
  773. package/src/theme/color-algorithms.ts +0 -142
  774. package/src/theme/index.tsx +0 -80
  775. package/src/theme/stories/index.story.tsx +0 -127
  776. package/src/theme/style.module.scss +0 -4
  777. package/src/theme/test/color-algorithms.ts +0 -100
  778. package/src/theme/test/index.tsx +0 -151
  779. package/src/theme/types.ts +0 -61
  780. package/src/toggle-group-control/toggle-group-control/styles.ts +0 -84
  781. package/src/toggle-group-control/toggle-group-control-option-base/styles.ts +0 -109
  782. package/src/tools-panel/styles.ts +0 -176
  783. package/src/utils/deprecated-36px-size.ts +0 -30
  784. package/src/utils/use-deprecated-props.ts +0 -14
  785. /package/build-module/{theme → content-editable-control}/types.mjs +0 -0
  786. /package/build-module/{theme → content-editable-control}/types.mjs.map +0 -0
@@ -378,6 +378,102 @@ describe( 'ColorPicker', () => {
378
378
  expect( onChange ).toHaveBeenLastCalledWith( '#000000' );
379
379
  } );
380
380
 
381
+ it.each( [
382
+ [ 'black', 0 ],
383
+ [ 'white', 100 ],
384
+ ] )(
385
+ 'should allow saturation 50→0 at %s without firing onChange',
386
+ async ( _label, lightness ) => {
387
+ const onChange = jest.fn();
388
+
389
+ render(
390
+ <ControlledColorPicker
391
+ onChange={ onChange }
392
+ enableAlpha={ false }
393
+ initialColor="#000000"
394
+ />
395
+ );
396
+
397
+ const formatSelector = screen.getByRole( 'combobox' );
398
+ await userEvent.setup().selectOptions( formatSelector, 'hsl' );
399
+
400
+ const hueSlider = screen
401
+ .getAllByRole( 'slider', { name: 'Hue' } )
402
+ .at( -1 )!;
403
+ const saturationSlider = screen.getByRole( 'slider', {
404
+ name: 'Saturation',
405
+ } );
406
+ const lightnessSlider = screen.getByRole( 'slider', {
407
+ name: 'Lightness',
408
+ } );
409
+ const saturationNumberInput = screen.getByRole( 'spinbutton', {
410
+ name: 'Saturation',
411
+ } );
412
+
413
+ // Build hsl(200, 50%, lightness%) via HSL controls.
414
+ fireEvent.change( hueSlider, { target: { value: 200 } } );
415
+ fireEvent.change( saturationSlider, { target: { value: 50 } } );
416
+ fireEvent.change( lightnessSlider, {
417
+ target: { value: lightness },
418
+ } );
419
+ await waitFor( () =>
420
+ expect( lightnessSlider ).toHaveValue( String( lightness ) )
421
+ );
422
+
423
+ expect( saturationSlider ).toHaveValue( '50' );
424
+ expect( saturationNumberInput ).toHaveValue( 50 );
425
+ onChange.mockClear();
426
+
427
+ fireEvent.change( saturationSlider, { target: { value: 0 } } );
428
+
429
+ expect( saturationSlider ).toHaveValue( '0' );
430
+ expect( saturationNumberInput ).toHaveValue( 0 );
431
+ expect( onChange ).not.toHaveBeenCalled();
432
+ }
433
+ );
434
+
435
+ it( 'should fire onChange once per real color change in controlled mode', async () => {
436
+ const onChange = jest.fn();
437
+
438
+ render(
439
+ <ControlledColorPicker
440
+ onChange={ onChange }
441
+ enableAlpha={ false }
442
+ initialColor="#2ad5d5" // hsl(180, 67%, 50%)
443
+ />
444
+ );
445
+
446
+ const formatSelector = screen.getByRole( 'combobox' );
447
+ await userEvent.setup().selectOptions( formatSelector, 'hsl' );
448
+
449
+ const lightnessSlider = screen.getByRole( 'slider', {
450
+ name: 'Lightness',
451
+ } );
452
+
453
+ fireEvent.change( lightnessSlider, { target: { value: 40 } } );
454
+ await waitFor( () =>
455
+ expect( lightnessSlider ).toHaveValue( '40' )
456
+ );
457
+ expect( onChange ).toHaveBeenCalledTimes( 1 );
458
+
459
+ fireEvent.change( lightnessSlider, { target: { value: 30 } } );
460
+ await waitFor( () =>
461
+ expect( lightnessSlider ).toHaveValue( '30' )
462
+ );
463
+ expect( onChange ).toHaveBeenCalledTimes( 2 );
464
+
465
+ fireEvent.change( lightnessSlider, { target: { value: 0 } } );
466
+ await waitFor( () => expect( lightnessSlider ).toHaveValue( '0' ) );
467
+ expect( onChange ).toHaveBeenCalledTimes( 3 );
468
+ onChange.mockClear();
469
+
470
+ const hueSlider = screen
471
+ .getAllByRole( 'slider', { name: 'Hue' } )
472
+ .at( -1 )!;
473
+ fireEvent.change( hueSlider, { target: { value: 90 } } );
474
+ expect( onChange ).not.toHaveBeenCalled();
475
+ } );
476
+
381
477
  it( 'should reset saturation to 0 when a mid-gray is entered via hex input', async () => {
382
478
  const user = userEvent.setup();
383
479
 
@@ -501,6 +597,412 @@ describe( 'ColorPicker', () => {
501
597
  } );
502
598
  } );
503
599
 
600
+ describe( 'visual picker', () => {
601
+ const mockInteractiveBounds = ( interactive: HTMLElement ) => {
602
+ interactive.getBoundingClientRect = () =>
603
+ ( {
604
+ left: 0,
605
+ top: 0,
606
+ width: 100,
607
+ height: 100,
608
+ right: 100,
609
+ bottom: 100,
610
+ x: 0,
611
+ y: 0,
612
+ toJSON: () => ( {} ),
613
+ } ) as DOMRect;
614
+ };
615
+
616
+ it( 'preserves saturation when keyboard-navigating to black in controlled mode', () => {
617
+ const onChange = jest.fn();
618
+
619
+ // Saturated red with mid brightness — HSVA s stays high at black.
620
+ const { container } = render(
621
+ <ControlledColorPicker
622
+ onChange={ onChange }
623
+ enableAlpha={ false }
624
+ initialColor="#cc0000"
625
+ />
626
+ );
627
+
628
+ const colorSlider = screen.getByRole( 'slider', { name: 'Color' } );
629
+ // Pointer is a presentational sibling; no accessible role.
630
+ // eslint-disable-next-line testing-library/no-container, testing-library/no-node-access
631
+ const pointer = container.querySelector(
632
+ '.react-colorful__saturation-pointer'
633
+ ) as HTMLElement;
634
+ expect( pointer ).toBeTruthy();
635
+
636
+ const leftBefore = pointer.style.left;
637
+ expect( parseFloat( leftBefore ) ).toBeGreaterThan( 50 );
638
+
639
+ // react-colorful reads which/keyCode (37–40), not event.key.
640
+ // From v≈80, 5% steps need at least 16 ArrowDown presses to reach black.
641
+ colorSlider.focus();
642
+ for ( let i = 0; i < 20; i++ ) {
643
+ fireEvent.keyDown( colorSlider, {
644
+ key: 'ArrowDown',
645
+ keyCode: 40,
646
+ which: 40,
647
+ } );
648
+ }
649
+
650
+ expect( pointer ).toHaveStyle( { top: '100%', left: leftBefore } );
651
+ expect( onChange ).toHaveBeenLastCalledWith( '#000000' );
652
+ } );
653
+
654
+ it( 'preserves saturation when pointer selects black in controlled mode', () => {
655
+ const onChange = jest.fn();
656
+
657
+ const { container } = render(
658
+ <ControlledColorPicker
659
+ onChange={ onChange }
660
+ enableAlpha={ false }
661
+ initialColor="#cc0000"
662
+ />
663
+ );
664
+
665
+ const interactive = screen.getByRole( 'slider', { name: 'Color' } );
666
+ mockInteractiveBounds( interactive );
667
+
668
+ // Pointer is a presentational sibling; no accessible role.
669
+ // eslint-disable-next-line testing-library/no-container, testing-library/no-node-access
670
+ const pointer = container.querySelector(
671
+ '.react-colorful__saturation-pointer'
672
+ ) as HTMLElement;
673
+ expect( parseFloat( pointer.style.left ) ).toBeGreaterThan( 50 );
674
+
675
+ // Click the bottom of the saturation surface (v = 0) at ~80% saturation.
676
+ fireEvent.mouseDown( interactive, {
677
+ buttons: 1,
678
+ pageX: 80,
679
+ pageY: 100,
680
+ clientX: 80,
681
+ clientY: 100,
682
+ } );
683
+
684
+ expect( pointer ).toHaveStyle( { top: '100%' } );
685
+ // Lossy HSVA→HSLA→HSVA sync would snap left to 0%.
686
+ expect( pointer ).not.toHaveStyle( { left: '0%' } );
687
+ expect( parseFloat( pointer.style.left ) ).toBeGreaterThan( 50 );
688
+ expect( onChange ).toHaveBeenLastCalledWith( '#000000' );
689
+ } );
690
+
691
+ it( 'preserves saturation after a full pointer drag to black then HSL hue edit', async () => {
692
+ const user = userEvent.setup();
693
+ const onChange = jest.fn();
694
+
695
+ const { container } = render(
696
+ <ControlledColorPicker
697
+ onChange={ onChange }
698
+ enableAlpha={ false }
699
+ initialColor="#cc0000"
700
+ />
701
+ );
702
+
703
+ const interactive = screen.getByRole( 'slider', { name: 'Color' } );
704
+ mockInteractiveBounds( interactive );
705
+
706
+ // eslint-disable-next-line testing-library/no-container, testing-library/no-node-access
707
+ const pointer = container.querySelector(
708
+ '.react-colorful__saturation-pointer'
709
+ ) as HTMLElement;
710
+
711
+ // Full pointer lifecycle so isPointerInteractingRef is exercised
712
+ // and prevHslaRef stays in sync across mid-gesture parent updates.
713
+ fireEvent.pointerDown( interactive, {
714
+ pointerId: 1,
715
+ buttons: 1,
716
+ pageX: 80,
717
+ pageY: 50,
718
+ clientX: 80,
719
+ clientY: 50,
720
+ } );
721
+ fireEvent.mouseDown( interactive, {
722
+ buttons: 1,
723
+ pageX: 80,
724
+ pageY: 50,
725
+ clientX: 80,
726
+ clientY: 50,
727
+ } );
728
+ fireEvent.mouseMove( interactive, {
729
+ buttons: 1,
730
+ pageX: 80,
731
+ pageY: 100,
732
+ clientX: 80,
733
+ clientY: 100,
734
+ } );
735
+ fireEvent.pointerUp( interactive, {
736
+ pointerId: 1,
737
+ buttons: 0,
738
+ pageX: 80,
739
+ pageY: 100,
740
+ clientX: 80,
741
+ clientY: 100,
742
+ } );
743
+ fireEvent.mouseUp( interactive, {
744
+ buttons: 0,
745
+ pageX: 80,
746
+ pageY: 100,
747
+ clientX: 80,
748
+ clientY: 100,
749
+ } );
750
+
751
+ expect( pointer ).toHaveStyle( { top: '100%' } );
752
+ expect( parseFloat( pointer.style.left ) ).toBeGreaterThan( 50 );
753
+ expect( onChange ).toHaveBeenLastCalledWith( '#000000' );
754
+ const leftAfterDrag = pointer.style.left;
755
+
756
+ const formatSelector = screen.getByRole( 'combobox' );
757
+ await user.selectOptions( formatSelector, 'hsl' );
758
+
759
+ const hueSlider = screen
760
+ .getAllByRole( 'slider', { name: 'Hue' } )
761
+ .at( -1 )!;
762
+ fireEvent.change( hueSlider, { target: { value: 200 } } );
763
+ await waitFor( () => expect( hueSlider ).toHaveValue( '200' ) );
764
+
765
+ // Stale prevHslaRef would mistake the hue edit for a saturation
766
+ // change and snap the pointer to left: 0%.
767
+ expect( pointer ).toHaveStyle( {
768
+ top: '100%',
769
+ left: leftAfterDrag,
770
+ } );
771
+ } );
772
+
773
+ it( 'places the pointer at s:0 when HSL lightness is set to white', async () => {
774
+ const user = userEvent.setup();
775
+ const onChange = jest.fn();
776
+
777
+ const { container } = render(
778
+ <ControlledColorPicker
779
+ onChange={ onChange }
780
+ enableAlpha={ false }
781
+ initialColor="#cc0000"
782
+ />
783
+ );
784
+
785
+ const formatSelector = screen.getByRole( 'combobox' );
786
+ await user.selectOptions( formatSelector, 'hsl' );
787
+
788
+ const lightnessSlider = screen.getByRole( 'slider', {
789
+ name: 'Lightness',
790
+ } );
791
+ fireEvent.change( lightnessSlider, { target: { value: 100 } } );
792
+ await waitFor( () =>
793
+ expect( lightnessSlider ).toHaveValue( '100' )
794
+ );
795
+ expect( onChange ).toHaveBeenLastCalledWith( '#ffffff' );
796
+
797
+ // eslint-disable-next-line testing-library/no-container, testing-library/no-node-access
798
+ const pointer = container.querySelector(
799
+ '.react-colorful__saturation-pointer'
800
+ ) as HTMLElement;
801
+ // Only v:100,s:0 is white; a preserved chromatic s leaves the
802
+ // pointer at top-right and makes the next key step jump to red.
803
+ expect( pointer ).toHaveStyle( { top: '0%', left: '0%' } );
804
+
805
+ const colorSlider = screen.getByRole( 'slider', { name: 'Color' } );
806
+ colorSlider.focus();
807
+ fireEvent.keyDown( colorSlider, {
808
+ key: 'ArrowDown',
809
+ keyCode: 40,
810
+ which: 40,
811
+ } );
812
+
813
+ expect( onChange ).not.toHaveBeenLastCalledWith( '#f50000' );
814
+ expect( onChange ).not.toHaveBeenLastCalledWith( '#cc0000' );
815
+ } );
816
+
817
+ it( 'preserves visual saturation when HSL hue is edited at black', async () => {
818
+ const user = userEvent.setup();
819
+
820
+ const { container } = render(
821
+ <ControlledColorPicker
822
+ enableAlpha={ false }
823
+ initialColor="#cc0000"
824
+ />
825
+ );
826
+
827
+ const formatSelector = screen.getByRole( 'combobox' );
828
+ await user.selectOptions( formatSelector, 'hsl' );
829
+
830
+ const lightnessSlider = screen.getByRole( 'slider', {
831
+ name: 'Lightness',
832
+ } );
833
+ fireEvent.change( lightnessSlider, { target: { value: 0 } } );
834
+ await waitFor( () => expect( lightnessSlider ).toHaveValue( '0' ) );
835
+
836
+ // eslint-disable-next-line testing-library/no-container, testing-library/no-node-access
837
+ const pointer = container.querySelector(
838
+ '.react-colorful__saturation-pointer'
839
+ ) as HTMLElement;
840
+ const leftBefore = pointer.style.left;
841
+ expect( parseFloat( leftBefore ) ).toBeGreaterThan( 50 );
842
+ expect( pointer ).toHaveStyle( { top: '100%' } );
843
+
844
+ const hueSlider = screen
845
+ .getAllByRole( 'slider', { name: 'Hue' } )
846
+ .at( -1 )!;
847
+ fireEvent.change( hueSlider, { target: { value: 200 } } );
848
+ await waitFor( () => expect( hueSlider ).toHaveValue( '200' ) );
849
+
850
+ expect( pointer ).toHaveStyle( {
851
+ top: '100%',
852
+ left: leftBefore,
853
+ } );
854
+ } );
855
+
856
+ it( 'keeps the white visual coordinate at s:0 when HSL hue is edited', async () => {
857
+ const user = userEvent.setup();
858
+
859
+ const { container } = render(
860
+ <ControlledColorPicker
861
+ enableAlpha={ false }
862
+ initialColor="#cc0000"
863
+ />
864
+ );
865
+
866
+ const formatSelector = screen.getByRole( 'combobox' );
867
+ await user.selectOptions( formatSelector, 'hsl' );
868
+
869
+ const lightnessSlider = screen.getByRole( 'slider', {
870
+ name: 'Lightness',
871
+ } );
872
+ fireEvent.change( lightnessSlider, { target: { value: 100 } } );
873
+ await waitFor( () =>
874
+ expect( lightnessSlider ).toHaveValue( '100' )
875
+ );
876
+
877
+ // eslint-disable-next-line testing-library/no-container, testing-library/no-node-access
878
+ const pointer = container.querySelector(
879
+ '.react-colorful__saturation-pointer'
880
+ ) as HTMLElement;
881
+ expect( pointer ).toHaveStyle( { top: '0%', left: '0%' } );
882
+
883
+ const hueSlider = screen
884
+ .getAllByRole( 'slider', { name: 'Hue' } )
885
+ .at( -1 )!;
886
+ fireEvent.change( hueSlider, { target: { value: 200 } } );
887
+ await waitFor( () => expect( hueSlider ).toHaveValue( '200' ) );
888
+
889
+ expect( pointer ).toHaveStyle( { top: '0%', left: '0%' } );
890
+ } );
891
+
892
+ it( 'uses the HSL hue when leaving white through the visual surface', async () => {
893
+ const user = userEvent.setup();
894
+ const onChange = jest.fn();
895
+
896
+ render(
897
+ <ControlledColorPicker
898
+ onChange={ onChange }
899
+ enableAlpha={ false }
900
+ initialColor="#cc0000"
901
+ />
902
+ );
903
+
904
+ await user.selectOptions( screen.getByRole( 'combobox' ), 'hsl' );
905
+ const lightnessSlider = screen.getByRole( 'slider', {
906
+ name: 'Lightness',
907
+ } );
908
+ fireEvent.change( lightnessSlider, { target: { value: 100 } } );
909
+
910
+ const hueSlider = screen
911
+ .getAllByRole( 'slider', { name: 'Hue' } )
912
+ .at( -1 )!;
913
+ fireEvent.change( hueSlider, { target: { value: 200 } } );
914
+ await waitFor( () => expect( hueSlider ).toHaveValue( '200' ) );
915
+
916
+ const colorSlider = screen.getByRole( 'slider', { name: 'Color' } );
917
+ mockInteractiveBounds( colorSlider );
918
+ onChange.mockClear();
919
+ fireEvent.mouseDown( colorSlider, {
920
+ buttons: 1,
921
+ pageX: 50,
922
+ pageY: 0,
923
+ clientX: 50,
924
+ clientY: 0,
925
+ } );
926
+
927
+ expect( onChange ).toHaveBeenLastCalledWith( '#80d4ff' );
928
+ } );
929
+
930
+ it( 'uses the HSL hue when leaving a mid-gray through the visual surface', async () => {
931
+ const user = userEvent.setup();
932
+ const onChange = jest.fn();
933
+
934
+ render(
935
+ <ControlledColorPicker
936
+ onChange={ onChange }
937
+ enableAlpha={ false }
938
+ initialColor="#808080"
939
+ />
940
+ );
941
+
942
+ await user.selectOptions( screen.getByRole( 'combobox' ), 'hsl' );
943
+ const hueSlider = screen
944
+ .getAllByRole( 'slider', { name: 'Hue' } )
945
+ .at( -1 )!;
946
+ fireEvent.change( hueSlider, { target: { value: 200 } } );
947
+ await waitFor( () => expect( hueSlider ).toHaveValue( '200' ) );
948
+
949
+ const colorSlider = screen.getByRole( 'slider', { name: 'Color' } );
950
+ mockInteractiveBounds( colorSlider );
951
+ onChange.mockClear();
952
+ fireEvent.mouseDown( colorSlider, {
953
+ buttons: 1,
954
+ pageX: 50,
955
+ pageY: 50,
956
+ clientX: 50,
957
+ clientY: 50,
958
+ } );
959
+
960
+ expect( onChange ).toHaveBeenLastCalledWith( '#416c81' );
961
+ } );
962
+
963
+ it( 'updates visual saturation when HSL saturation is edited at black', async () => {
964
+ const user = userEvent.setup();
965
+
966
+ const { container } = render(
967
+ <ControlledColorPicker
968
+ enableAlpha={ false }
969
+ initialColor="#cc0000"
970
+ />
971
+ );
972
+
973
+ const formatSelector = screen.getByRole( 'combobox' );
974
+ await user.selectOptions( formatSelector, 'hsl' );
975
+
976
+ const lightnessSlider = screen.getByRole( 'slider', {
977
+ name: 'Lightness',
978
+ } );
979
+ fireEvent.change( lightnessSlider, { target: { value: 0 } } );
980
+ await waitFor( () => expect( lightnessSlider ).toHaveValue( '0' ) );
981
+
982
+ // eslint-disable-next-line testing-library/no-container, testing-library/no-node-access
983
+ const pointer = container.querySelector(
984
+ '.react-colorful__saturation-pointer'
985
+ ) as HTMLElement;
986
+ expect( pointer ).toHaveStyle( { top: '100%' } );
987
+ expect( parseFloat( pointer.style.left ) ).toBeGreaterThan( 50 );
988
+
989
+ const saturationSlider = screen.getByRole( 'slider', {
990
+ name: 'Saturation',
991
+ } );
992
+ fireEvent.change( saturationSlider, {
993
+ target: { value: 25 },
994
+ } );
995
+ await waitFor( () =>
996
+ expect( saturationSlider ).toHaveValue( '25' )
997
+ );
998
+
999
+ expect( pointer ).toHaveStyle( {
1000
+ top: '100%',
1001
+ left: '25%',
1002
+ } );
1003
+ } );
1004
+ } );
1005
+
504
1006
  describe.each( [
505
1007
  [ 'hsl', 'HSL' ],
506
1008
  [ 'rgb', 'RGB' ],
@@ -59,6 +59,8 @@ export interface PickerProps {
59
59
  hsla: HslaColor;
60
60
  enableAlpha: boolean;
61
61
  onChange: ( nextHsla: HslaColor ) => void;
62
+ onInteractionStart?: () => void;
63
+ onInteractionEnd?: () => void;
62
64
  }
63
65
 
64
66
  export interface ColorInputProps {
@@ -33,7 +33,7 @@ input.components-combobox-control__input[type="text"] {
33
33
  }
34
34
 
35
35
  .components-combobox-control__suggestions-container {
36
- @include input-control($components-color-accent);
36
+ @include input-control;
37
37
  display: flex;
38
38
  flex-wrap: wrap;
39
39
  align-items: flex-start;
@@ -41,7 +41,7 @@ input.components-combobox-control__input[type="text"] {
41
41
  padding: 0;
42
42
 
43
43
  &:focus-within {
44
- @include input-style__focus($components-color-accent);
44
+ @include input-style__focus;
45
45
  }
46
46
 
47
47
  .components-spinner {
@@ -15,8 +15,7 @@ import { Flex } from '../flex';
15
15
  import Button from '../button';
16
16
  import { Text } from '../text';
17
17
  import { VStack } from '../v-stack';
18
- import * as styles from './styles';
19
- import { useCx } from '../utils/hooks/use-cx';
18
+ import styles from './style.module.scss';
20
19
 
21
20
  const UnconnectedConfirmDialog = (
22
21
  props: WordPressComponentProps< ConfirmDialogProps, 'div', false >,
@@ -33,8 +32,7 @@ const UnconnectedConfirmDialog = (
33
32
  ...otherProps
34
33
  } = useContextSystem( props, 'ConfirmDialog' );
35
34
 
36
- const cx = useCx();
37
- const wrapperClassName = cx( styles.wrapper );
35
+ const wrapperClassName = styles.wrapper;
38
36
  const cancelButtonRef = useRef< HTMLButtonElement >( null );
39
37
  const confirmButtonRef = useRef< HTMLButtonElement >( null );
40
38
 
@@ -36,7 +36,7 @@ const meta: Meta< typeof ConfirmDialog > = {
36
36
  componentStatus: {
37
37
  status: 'recommended',
38
38
  whereUsed: 'global',
39
- notes: 'Will be superseded by `AlertDialog` in `@wordpress/ui`, but continue using for now.',
39
+ notes: 'Will be superseded by [`AlertDialog`](?path=/docs/design-system-components-alertdialog--docs) in `@wordpress/ui`, but continue using for now.',
40
40
  },
41
41
  docs: { canvas: { sourceState: 'shown' } },
42
42
  },
@@ -0,0 +1,7 @@
1
+ @use "@wordpress/base-styles/z-index" as *;
2
+
3
+ // Match the previous Emotion `&&` specificity so this rule continues to
4
+ // override the Modal overlay's default z-index regardless of source order.
5
+ .wrapper.wrapper {
6
+ z-index: z-index(".components-confirm-dialog");
7
+ }
@@ -8,6 +8,7 @@ import userEvent from '@testing-library/user-event';
8
8
  * Internal dependencies
9
9
  */
10
10
  import { ConfirmDialog } from '..';
11
+ import styles from '../style.module.scss';
11
12
 
12
13
  const noop = () => {};
13
14
 
@@ -25,6 +26,10 @@ describe( 'Confirm', () => {
25
26
  const elementsTexts = [ 'Are you sure?', 'OK', 'Cancel' ];
26
27
 
27
28
  expect( dialog ).toBeInTheDocument();
29
+ expect( dialog ).toHaveClass( 'components-confirm-dialog' );
30
+ // Disable reason: Semantic queries can't reach the overlay.
31
+ // eslint-disable-next-line testing-library/no-node-access
32
+ expect( dialog.parentElement ).toHaveClass( styles.wrapper );
28
33
 
29
34
  elementsTexts.forEach( ( txt ) => {
30
35
  const el = screen.getByText( txt );
@@ -0,0 +1,88 @@
1
+ # ContentEditableControl
2
+
3
+ <!-- This file is generated automatically and cannot be edited directly. Make edits via TypeScript types and TSDocs. -->
4
+
5
+ 🔒 This component is locked as a [private API](https://developer.wordpress.org/block-editor/reference-guides/packages/packages-private-apis/). We do not yet recommend using this outside of the Gutenberg project.
6
+
7
+ <p class="callout callout-info">See the <a href="https://wordpress.github.io/gutenberg/?path=/docs/components-contenteditablecontrol--docs">WordPress Storybook</a> for more detailed, interactive documentation.</p>
8
+
9
+ A presentational `contentEditable` form control: a labeled editable element
10
+ rendered with the chrome (`BaseControl` + label) shared by the other form
11
+ controls in the package.
12
+
13
+ Unlike the in-canvas `RichText` from `@wordpress/block-editor`, this control
14
+ is intended for standalone form fields (DataForms, sidebar inputs, etc.).
15
+ It is deliberately **presentational only** and has no `@wordpress/rich-text`
16
+ dependency: the editable behavior (value, formatting, keyboard shortcuts)
17
+ and any focus/selection tracking are owned by the consumer, which wires them
18
+ through the forwarded ref and native event props (see the richtext DataForm
19
+ control in `@wordpress/dataviews` for the canonical assembly).
20
+
21
+ ```jsx
22
+ // The rich-text "assembly" lives in the consumer.
23
+ <ContentEditableControl
24
+ label="Caption"
25
+ ref={ mergedRef }
26
+ onFocus={ onEditableFocus }
27
+ onBlur={ onEditableBlur }
28
+ />
29
+ ```
30
+
31
+ ## Props
32
+
33
+ ### `className`
34
+
35
+ - Type: `string`
36
+ - Required: No
37
+
38
+ ### `disabled`
39
+
40
+ - Type: `boolean`
41
+ - Required: No
42
+ - Default: `false`
43
+
44
+ Whether the field is non-editable. A disabled field is not
45
+ `contentEditable` (so it is neither focusable nor editable) and exposes
46
+ `aria-disabled` to assistive technology.
47
+
48
+ ### `hideLabelFromVision`
49
+
50
+ - Type: `boolean`
51
+ - Required: No
52
+ - Default: `false`
53
+
54
+ If true, the label will only be visible to screen readers.
55
+
56
+ ### `help`
57
+
58
+ - Type: `ReactNode`
59
+ - Required: No
60
+
61
+ Additional description for the control.
62
+
63
+ Only use for meaningful description or instructions for the control. An element containing the description will be programmatically associated to the BaseControl by the means of an `aria-describedby` attribute.
64
+
65
+ ### `label`
66
+
67
+ - Type: `string`
68
+ - Required: Yes
69
+
70
+ Label text for the control.
71
+
72
+ ### `placeholder`
73
+
74
+ - Type: `string`
75
+ - Required: No
76
+
77
+ Placeholder text shown while the element has no content. Exposed to
78
+ assistive technology via `aria-placeholder` and drawn by the stylesheet
79
+ when the element is empty.
80
+
81
+ ### `required`
82
+
83
+ - Type: `boolean`
84
+ - Required: No
85
+ - Default: `false`
86
+
87
+ Whether the field is required. Exposed to assistive technology via
88
+ `aria-required`.
@@ -0,0 +1,5 @@
1
+ {
2
+ "$schema": "../../schemas/docs-manifest.json",
3
+ "displayName": "ContentEditableControl",
4
+ "filePath": "./index.tsx"
5
+ }