@wordpress/components 32.0.2-next.v.0 → 32.1.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 (304) hide show
  1. package/CHANGELOG.md +5 -1
  2. package/build/alignment-matrix-control/cell.cjs +6 -121
  3. package/build/alignment-matrix-control/cell.cjs.map +2 -2
  4. package/build/alignment-matrix-control/icon.cjs +2 -3
  5. package/build/alignment-matrix-control/icon.cjs.map +2 -2
  6. package/build/alignment-matrix-control/index.cjs +6 -121
  7. package/build/alignment-matrix-control/index.cjs.map +2 -2
  8. package/build/angle-picker-control/angle-circle.cjs +6 -85
  9. package/build/angle-picker-control/angle-circle.cjs.map +2 -2
  10. package/build/autocomplete/autocompleter-ui.cjs +1 -2
  11. package/build/autocomplete/autocompleter-ui.cjs.map +2 -2
  12. package/build/box-control/input-control.cjs +8 -12
  13. package/build/box-control/input-control.cjs.map +2 -2
  14. package/build/button/index.cjs +6 -12
  15. package/build/button/index.cjs.map +2 -2
  16. package/build/calendar/date-calendar/index.cjs +2 -2
  17. package/build/calendar/date-calendar/index.cjs.map +2 -2
  18. package/build/calendar/date-range-calendar/index.cjs +4 -6
  19. package/build/calendar/date-range-calendar/index.cjs.map +2 -2
  20. package/build/card/card/hook.cjs +1 -2
  21. package/build/card/card/hook.cjs.map +2 -2
  22. package/build/color-palette/utils.cjs +2 -2
  23. package/build/color-palette/utils.cjs.map +2 -2
  24. package/build/combobox-control/index.cjs +1 -2
  25. package/build/combobox-control/index.cjs.map +2 -2
  26. package/build/composite/group-label.cjs +1 -2
  27. package/build/composite/group-label.cjs.map +2 -2
  28. package/build/composite/group.cjs +1 -2
  29. package/build/composite/group.cjs.map +2 -2
  30. package/build/composite/hover.cjs +1 -2
  31. package/build/composite/hover.cjs.map +2 -2
  32. package/build/composite/index.cjs +1 -1
  33. package/build/composite/index.cjs.map +2 -2
  34. package/build/composite/item.cjs +1 -2
  35. package/build/composite/item.cjs.map +2 -2
  36. package/build/composite/legacy/index.cjs +1 -2
  37. package/build/composite/legacy/index.cjs.map +2 -2
  38. package/build/composite/row.cjs +1 -2
  39. package/build/composite/row.cjs.map +2 -2
  40. package/build/composite/typeahead.cjs +1 -2
  41. package/build/composite/typeahead.cjs.map +2 -2
  42. package/build/confirm-dialog/component.cjs +2 -2
  43. package/build/confirm-dialog/component.cjs.map +2 -2
  44. package/build/context/context-system-provider.cjs +1 -1
  45. package/build/context/context-system-provider.cjs.map +2 -2
  46. package/build/custom-gradient-picker/index.cjs +1 -2
  47. package/build/custom-gradient-picker/index.cjs.map +2 -2
  48. package/build/custom-gradient-picker/utils.cjs +1 -1
  49. package/build/custom-gradient-picker/utils.cjs.map +2 -2
  50. package/build/custom-select-control/index.cjs +2 -3
  51. package/build/custom-select-control/index.cjs.map +2 -2
  52. package/build/custom-select-control-v2/custom-select.cjs +1 -1
  53. package/build/custom-select-control-v2/custom-select.cjs.map +2 -2
  54. package/build/custom-select-control-v2/item.cjs +2 -3
  55. package/build/custom-select-control-v2/item.cjs.map +2 -2
  56. package/build/date-time/date/index.cjs +1 -1
  57. package/build/date-time/date/index.cjs.map +2 -2
  58. package/build/date-time/time/index.cjs +2 -2
  59. package/build/date-time/time/index.cjs.map +2 -2
  60. package/build/date-time/utils.cjs +1 -2
  61. package/build/date-time/utils.cjs.map +2 -2
  62. package/build/divider/styles.cjs +2 -2
  63. package/build/divider/styles.cjs.map +2 -2
  64. package/build/dropdown-menu/index.cjs +2 -3
  65. package/build/dropdown-menu/index.cjs.map +2 -2
  66. package/build/duotone-picker/duotone-picker.cjs +1 -1
  67. package/build/duotone-picker/duotone-picker.cjs.map +2 -2
  68. package/build/flex/flex/hook.cjs +1 -1
  69. package/build/flex/flex/hook.cjs.map +2 -2
  70. package/build/focal-point-picker/index.cjs +1 -2
  71. package/build/focal-point-picker/index.cjs.map +2 -2
  72. package/build/font-size-picker/font-size-picker-select.cjs +1 -2
  73. package/build/font-size-picker/font-size-picker-select.cjs.map +2 -2
  74. package/build/font-size-picker/index.cjs +2 -2
  75. package/build/font-size-picker/index.cjs.map +2 -2
  76. package/build/guide/index.cjs +2 -3
  77. package/build/guide/index.cjs.map +2 -2
  78. package/build/higher-order/navigate-regions/index.cjs +1 -2
  79. package/build/higher-order/navigate-regions/index.cjs.map +2 -2
  80. package/build/input-control/input-field.cjs +1 -1
  81. package/build/input-control/input-field.cjs.map +2 -2
  82. package/build/input-control/reducer/reducer.cjs +2 -4
  83. package/build/input-control/reducer/reducer.cjs.map +2 -2
  84. package/build/keyboard-shortcuts/index.cjs +1 -1
  85. package/build/keyboard-shortcuts/index.cjs.map +2 -2
  86. package/build/menu/index.cjs +1 -1
  87. package/build/menu/index.cjs.map +2 -2
  88. package/build/menu/item.cjs +1 -1
  89. package/build/menu/item.cjs.map +2 -2
  90. package/build/menu/popover.cjs +2 -2
  91. package/build/menu/popover.cjs.map +2 -2
  92. package/build/modal/index.cjs +2 -4
  93. package/build/modal/index.cjs.map +2 -2
  94. package/build/navigator/navigator/component.cjs +8 -13
  95. package/build/navigator/navigator/component.cjs.map +2 -2
  96. package/build/navigator/navigator-screen/component.cjs +1 -1
  97. package/build/navigator/navigator-screen/component.cjs.map +2 -2
  98. package/build/number-control/index.cjs +2 -3
  99. package/build/number-control/index.cjs.map +2 -2
  100. package/build/palette-edit/index.cjs +3 -4
  101. package/build/palette-edit/index.cjs.map +2 -2
  102. package/build/popover/index.cjs +1 -2
  103. package/build/popover/index.cjs.map +2 -2
  104. package/build/popover/overlay-middlewares.cjs +1 -2
  105. package/build/popover/overlay-middlewares.cjs.map +2 -2
  106. package/build/popover/utils.cjs +3 -8
  107. package/build/popover/utils.cjs.map +2 -2
  108. package/build/private-apis.cjs +1 -0
  109. package/build/private-apis.cjs.map +2 -2
  110. package/build/radio-group/index.cjs +1 -1
  111. package/build/radio-group/index.cjs.map +2 -2
  112. package/build/range-control/index.cjs +4 -4
  113. package/build/range-control/index.cjs.map +2 -2
  114. package/build/range-control/utils.cjs +1 -1
  115. package/build/range-control/utils.cjs.map +2 -2
  116. package/build/search-control/index.cjs +3 -3
  117. package/build/search-control/index.cjs.map +2 -2
  118. package/build/slot-fill/fill.cjs +1 -2
  119. package/build/slot-fill/fill.cjs.map +2 -2
  120. package/build/slot-fill/slot.cjs +1 -2
  121. package/build/slot-fill/slot.cjs.map +2 -2
  122. package/build/tabs/tab.cjs +1 -2
  123. package/build/tabs/tab.cjs.map +2 -2
  124. package/build/tabs/tablist.cjs +7 -11
  125. package/build/tabs/tablist.cjs.map +2 -2
  126. package/build/toggle-group-control/toggle-group-control/as-radio-group.cjs +1 -1
  127. package/build/toggle-group-control/toggle-group-control/as-radio-group.cjs.map +2 -2
  128. package/build/toggle-group-control/toggle-group-control/utils.cjs +1 -1
  129. package/build/toggle-group-control/toggle-group-control/utils.cjs.map +2 -2
  130. package/build/tree-grid/index.cjs +1 -2
  131. package/build/tree-grid/index.cjs.map +2 -2
  132. package/build/unit-control/index.cjs +4 -5
  133. package/build/unit-control/index.cjs.map +2 -2
  134. package/build/unit-control/utils.cjs +2 -2
  135. package/build/unit-control/utils.cjs.map +2 -2
  136. package/build/utils/element-rect.cjs +3 -4
  137. package/build/utils/element-rect.cjs.map +2 -2
  138. package/build/utils/font.cjs +1 -2
  139. package/build/utils/font.cjs.map +2 -2
  140. package/build/utils/strings.cjs +1 -2
  141. package/build/utils/strings.cjs.map +2 -2
  142. package/build/utils/use-deprecated-props.cjs +1 -1
  143. package/build/utils/use-deprecated-props.cjs.map +2 -2
  144. package/build/utils/values.cjs +1 -2
  145. package/build/utils/values.cjs.map +2 -2
  146. package/build/validated-form-controls/components/combobox-control.cjs +1 -1
  147. package/build/validated-form-controls/components/combobox-control.cjs.map +2 -2
  148. package/build/validated-form-controls/components/toggle-control.cjs +1 -1
  149. package/build/validated-form-controls/components/toggle-control.cjs.map +2 -2
  150. package/build/validated-form-controls/control-with-error.cjs +3 -6
  151. package/build/validated-form-controls/control-with-error.cjs.map +2 -2
  152. package/build-module/alignment-matrix-control/cell.mjs +6 -121
  153. package/build-module/alignment-matrix-control/cell.mjs.map +2 -2
  154. package/build-module/alignment-matrix-control/icon.mjs +2 -3
  155. package/build-module/alignment-matrix-control/icon.mjs.map +2 -2
  156. package/build-module/alignment-matrix-control/index.mjs +6 -121
  157. package/build-module/alignment-matrix-control/index.mjs.map +2 -2
  158. package/build-module/angle-picker-control/angle-circle.mjs +6 -85
  159. package/build-module/angle-picker-control/angle-circle.mjs.map +2 -2
  160. package/build-module/autocomplete/autocompleter-ui.mjs +1 -2
  161. package/build-module/autocomplete/autocompleter-ui.mjs.map +2 -2
  162. package/build-module/box-control/input-control.mjs +8 -12
  163. package/build-module/box-control/input-control.mjs.map +2 -2
  164. package/build-module/button/index.mjs +6 -12
  165. package/build-module/button/index.mjs.map +2 -2
  166. package/build-module/calendar/date-calendar/index.mjs +2 -2
  167. package/build-module/calendar/date-calendar/index.mjs.map +2 -2
  168. package/build-module/calendar/date-range-calendar/index.mjs +4 -6
  169. package/build-module/calendar/date-range-calendar/index.mjs.map +2 -2
  170. package/build-module/card/card/hook.mjs +1 -2
  171. package/build-module/card/card/hook.mjs.map +2 -2
  172. package/build-module/color-palette/utils.mjs +2 -2
  173. package/build-module/color-palette/utils.mjs.map +2 -2
  174. package/build-module/combobox-control/index.mjs +1 -2
  175. package/build-module/combobox-control/index.mjs.map +2 -2
  176. package/build-module/composite/group-label.mjs +1 -2
  177. package/build-module/composite/group-label.mjs.map +2 -2
  178. package/build-module/composite/group.mjs +1 -2
  179. package/build-module/composite/group.mjs.map +2 -2
  180. package/build-module/composite/hover.mjs +1 -2
  181. package/build-module/composite/hover.mjs.map +2 -2
  182. package/build-module/composite/index.mjs +1 -1
  183. package/build-module/composite/index.mjs.map +2 -2
  184. package/build-module/composite/item.mjs +1 -2
  185. package/build-module/composite/item.mjs.map +2 -2
  186. package/build-module/composite/legacy/index.mjs +1 -2
  187. package/build-module/composite/legacy/index.mjs.map +2 -2
  188. package/build-module/composite/row.mjs +1 -2
  189. package/build-module/composite/row.mjs.map +2 -2
  190. package/build-module/composite/typeahead.mjs +1 -2
  191. package/build-module/composite/typeahead.mjs.map +2 -2
  192. package/build-module/confirm-dialog/component.mjs +2 -2
  193. package/build-module/confirm-dialog/component.mjs.map +2 -2
  194. package/build-module/context/context-system-provider.mjs +1 -1
  195. package/build-module/context/context-system-provider.mjs.map +2 -2
  196. package/build-module/custom-gradient-picker/index.mjs +1 -2
  197. package/build-module/custom-gradient-picker/index.mjs.map +2 -2
  198. package/build-module/custom-gradient-picker/utils.mjs +1 -1
  199. package/build-module/custom-gradient-picker/utils.mjs.map +2 -2
  200. package/build-module/custom-select-control/index.mjs +2 -3
  201. package/build-module/custom-select-control/index.mjs.map +2 -2
  202. package/build-module/custom-select-control-v2/custom-select.mjs +1 -1
  203. package/build-module/custom-select-control-v2/custom-select.mjs.map +2 -2
  204. package/build-module/custom-select-control-v2/item.mjs +2 -3
  205. package/build-module/custom-select-control-v2/item.mjs.map +2 -2
  206. package/build-module/date-time/date/index.mjs +1 -1
  207. package/build-module/date-time/date/index.mjs.map +2 -2
  208. package/build-module/date-time/time/index.mjs +2 -2
  209. package/build-module/date-time/time/index.mjs.map +2 -2
  210. package/build-module/date-time/utils.mjs +1 -2
  211. package/build-module/date-time/utils.mjs.map +2 -2
  212. package/build-module/divider/styles.mjs +2 -2
  213. package/build-module/divider/styles.mjs.map +2 -2
  214. package/build-module/dropdown-menu/index.mjs +2 -3
  215. package/build-module/dropdown-menu/index.mjs.map +2 -2
  216. package/build-module/duotone-picker/duotone-picker.mjs +1 -1
  217. package/build-module/duotone-picker/duotone-picker.mjs.map +2 -2
  218. package/build-module/flex/flex/hook.mjs +1 -1
  219. package/build-module/flex/flex/hook.mjs.map +2 -2
  220. package/build-module/focal-point-picker/index.mjs +1 -2
  221. package/build-module/focal-point-picker/index.mjs.map +2 -2
  222. package/build-module/font-size-picker/font-size-picker-select.mjs +1 -2
  223. package/build-module/font-size-picker/font-size-picker-select.mjs.map +2 -2
  224. package/build-module/font-size-picker/index.mjs +2 -2
  225. package/build-module/font-size-picker/index.mjs.map +2 -2
  226. package/build-module/guide/index.mjs +2 -3
  227. package/build-module/guide/index.mjs.map +2 -2
  228. package/build-module/higher-order/navigate-regions/index.mjs +1 -2
  229. package/build-module/higher-order/navigate-regions/index.mjs.map +2 -2
  230. package/build-module/input-control/input-field.mjs +1 -1
  231. package/build-module/input-control/input-field.mjs.map +2 -2
  232. package/build-module/input-control/reducer/reducer.mjs +2 -4
  233. package/build-module/input-control/reducer/reducer.mjs.map +2 -2
  234. package/build-module/keyboard-shortcuts/index.mjs +1 -1
  235. package/build-module/keyboard-shortcuts/index.mjs.map +2 -2
  236. package/build-module/menu/index.mjs +1 -1
  237. package/build-module/menu/index.mjs.map +2 -2
  238. package/build-module/menu/item.mjs +1 -1
  239. package/build-module/menu/item.mjs.map +2 -2
  240. package/build-module/menu/popover.mjs +2 -2
  241. package/build-module/menu/popover.mjs.map +2 -2
  242. package/build-module/modal/index.mjs +2 -4
  243. package/build-module/modal/index.mjs.map +2 -2
  244. package/build-module/navigator/navigator/component.mjs +8 -13
  245. package/build-module/navigator/navigator/component.mjs.map +2 -2
  246. package/build-module/navigator/navigator-screen/component.mjs +1 -1
  247. package/build-module/navigator/navigator-screen/component.mjs.map +2 -2
  248. package/build-module/number-control/index.mjs +2 -3
  249. package/build-module/number-control/index.mjs.map +2 -2
  250. package/build-module/palette-edit/index.mjs +3 -4
  251. package/build-module/palette-edit/index.mjs.map +2 -2
  252. package/build-module/popover/index.mjs +1 -2
  253. package/build-module/popover/index.mjs.map +2 -2
  254. package/build-module/popover/overlay-middlewares.mjs +1 -2
  255. package/build-module/popover/overlay-middlewares.mjs.map +2 -2
  256. package/build-module/popover/utils.mjs +3 -8
  257. package/build-module/popover/utils.mjs.map +2 -2
  258. package/build-module/private-apis.mjs +2 -1
  259. package/build-module/private-apis.mjs.map +2 -2
  260. package/build-module/radio-group/index.mjs +1 -1
  261. package/build-module/radio-group/index.mjs.map +2 -2
  262. package/build-module/range-control/index.mjs +4 -4
  263. package/build-module/range-control/index.mjs.map +2 -2
  264. package/build-module/range-control/utils.mjs +1 -1
  265. package/build-module/range-control/utils.mjs.map +2 -2
  266. package/build-module/search-control/index.mjs +3 -3
  267. package/build-module/search-control/index.mjs.map +2 -2
  268. package/build-module/slot-fill/fill.mjs +1 -2
  269. package/build-module/slot-fill/fill.mjs.map +2 -2
  270. package/build-module/slot-fill/slot.mjs +1 -2
  271. package/build-module/slot-fill/slot.mjs.map +2 -2
  272. package/build-module/tabs/tab.mjs +1 -2
  273. package/build-module/tabs/tab.mjs.map +2 -2
  274. package/build-module/tabs/tablist.mjs +7 -11
  275. package/build-module/tabs/tablist.mjs.map +2 -2
  276. package/build-module/toggle-group-control/toggle-group-control/as-radio-group.mjs +1 -1
  277. package/build-module/toggle-group-control/toggle-group-control/as-radio-group.mjs.map +2 -2
  278. package/build-module/toggle-group-control/toggle-group-control/utils.mjs +1 -1
  279. package/build-module/toggle-group-control/toggle-group-control/utils.mjs.map +2 -2
  280. package/build-module/tree-grid/index.mjs +1 -2
  281. package/build-module/tree-grid/index.mjs.map +2 -2
  282. package/build-module/unit-control/index.mjs +4 -5
  283. package/build-module/unit-control/index.mjs.map +2 -2
  284. package/build-module/unit-control/utils.mjs +2 -2
  285. package/build-module/unit-control/utils.mjs.map +2 -2
  286. package/build-module/utils/element-rect.mjs +3 -4
  287. package/build-module/utils/element-rect.mjs.map +2 -2
  288. package/build-module/utils/font.mjs +1 -2
  289. package/build-module/utils/font.mjs.map +2 -2
  290. package/build-module/utils/strings.mjs +1 -2
  291. package/build-module/utils/strings.mjs.map +2 -2
  292. package/build-module/utils/use-deprecated-props.mjs +1 -1
  293. package/build-module/utils/use-deprecated-props.mjs.map +2 -2
  294. package/build-module/utils/values.mjs +1 -2
  295. package/build-module/utils/values.mjs.map +2 -2
  296. package/build-module/validated-form-controls/components/combobox-control.mjs +1 -1
  297. package/build-module/validated-form-controls/components/combobox-control.mjs.map +2 -2
  298. package/build-module/validated-form-controls/components/toggle-control.mjs +1 -1
  299. package/build-module/validated-form-controls/components/toggle-control.mjs.map +2 -2
  300. package/build-module/validated-form-controls/control-with-error.mjs +3 -6
  301. package/build-module/validated-form-controls/control-with-error.mjs.map +2 -2
  302. package/build-types/private-apis.d.ts.map +1 -1
  303. package/package.json +21 -21
  304. package/src/private-apis.ts +2 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/composite/typeahead.tsx"],
4
- "sourcesContent": ["/**\n * External dependencies\n */\nimport * as Ariakit from '@ariakit/react';\n\n/**\n * WordPress dependencies\n */\nimport { forwardRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\n\nimport { useCompositeContext } from './context';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const CompositeTypeahead = forwardRef(function CompositeTypeahead(props, ref) {\n var _props$store;\n const context = useCompositeContext();\n\n // @ts-expect-error The store prop is undocumented and only used by the\n // legacy compat layer. The `store` prop is documented, but its type is\n // obfuscated to discourage its use outside of the component's internals.\n const store = (_props$store = props.store) !== null && _props$store !== void 0 ? _props$store : context.store;\n return /*#__PURE__*/_jsx(Ariakit.CompositeTypeahead, {\n store: store,\n ...props,\n ref: ref\n });\n});"],
5
- "mappings": ";AAGA,YAAY,aAAa;AAKzB,SAAS,kBAAkB;AAM3B,SAAS,2BAA2B;AACpC,SAAS,OAAO,YAAY;AACrB,IAAMA,sBAAqB,WAAW,SAASA,oBAAmB,OAAO,KAAK;AACnF,MAAI;AACJ,QAAM,UAAU,oBAAoB;AAKpC,QAAM,SAAS,eAAe,MAAM,WAAW,QAAQ,iBAAiB,SAAS,eAAe,QAAQ;AACxG,SAAoB,qBAAa,4BAAoB;AAAA,IACnD;AAAA,IACA,GAAG;AAAA,IACH;AAAA,EACF,CAAC;AACH,CAAC;",
4
+ "sourcesContent": ["/**\n * External dependencies\n */\nimport * as Ariakit from '@ariakit/react';\n\n/**\n * WordPress dependencies\n */\nimport { forwardRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\n\nimport { useCompositeContext } from './context';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const CompositeTypeahead = forwardRef(function CompositeTypeahead(props, ref) {\n const context = useCompositeContext();\n\n // @ts-expect-error The store prop is undocumented and only used by the\n // legacy compat layer. The `store` prop is documented, but its type is\n // obfuscated to discourage its use outside of the component's internals.\n const store = props.store ?? context.store;\n return /*#__PURE__*/_jsx(Ariakit.CompositeTypeahead, {\n store: store,\n ...props,\n ref: ref\n });\n});"],
5
+ "mappings": ";AAGA,YAAY,aAAa;AAKzB,SAAS,kBAAkB;AAM3B,SAAS,2BAA2B;AACpC,SAAS,OAAO,YAAY;AACrB,IAAMA,sBAAqB,WAAW,SAASA,oBAAmB,OAAO,KAAK;AACnF,QAAM,UAAU,oBAAoB;AAKpC,QAAM,QAAQ,MAAM,SAAS,QAAQ;AACrC,SAAoB,qBAAa,4BAAoB;AAAA,IACnD;AAAA,IACA,GAAG;AAAA,IACH;AAAA,EACF,CAAC;AACH,CAAC;",
6
6
  "names": ["CompositeTypeahead"]
7
7
  }
@@ -44,8 +44,8 @@ var UnconnectedConfirmDialog = (props, forwardedRef) => {
44
44
  handleEvent(onConfirm)(event);
45
45
  }
46
46
  }, [handleEvent, onConfirm]);
47
- const cancelLabel = cancelButtonText !== null && cancelButtonText !== void 0 ? cancelButtonText : __("Cancel");
48
- const confirmLabel = confirmButtonText !== null && confirmButtonText !== void 0 ? confirmButtonText : __("OK");
47
+ const cancelLabel = cancelButtonText ?? __("Cancel");
48
+ const confirmLabel = confirmButtonText ?? __("OK");
49
49
  return /* @__PURE__ */ _jsx(_Fragment, {
50
50
  children: isOpen && /* @__PURE__ */ _jsx(Modal, {
51
51
  onRequestClose: handleEvent(onCancel),
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/confirm-dialog/component.tsx"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useCallback, useEffect, useRef, useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport Modal from '../modal';\nimport { useContextSystem, contextConnect } from '../context';\nimport { Flex } from '../flex';\nimport Button from '../button';\nimport { Text } from '../text';\nimport { VStack } from '../v-stack';\nimport * as styles from './styles';\nimport { useCx } from '../utils/hooks/use-cx';\nimport { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nconst UnconnectedConfirmDialog = (props, forwardedRef) => {\n const {\n isOpen: isOpenProp,\n onConfirm,\n onCancel,\n children,\n confirmButtonText,\n cancelButtonText,\n isBusy,\n ...otherProps\n } = useContextSystem(props, 'ConfirmDialog');\n const cx = useCx();\n const wrapperClassName = cx(styles.wrapper);\n const cancelButtonRef = useRef();\n const confirmButtonRef = useRef();\n const [isOpen, setIsOpen] = useState();\n const [shouldSelfClose, setShouldSelfClose] = useState();\n useEffect(() => {\n // We only allow the dialog to close itself if `isOpenProp` is *not* set.\n // If `isOpenProp` is set, then it (probably) means it's controlled by a\n // parent component. In that case, `shouldSelfClose` might do more harm than\n // good, so we disable it.\n const isIsOpenSet = typeof isOpenProp !== 'undefined';\n setIsOpen(isIsOpenSet ? isOpenProp : true);\n setShouldSelfClose(!isIsOpenSet);\n }, [isOpenProp]);\n const handleEvent = useCallback(callback => event => {\n callback?.(event);\n if (shouldSelfClose) {\n setIsOpen(false);\n }\n }, [shouldSelfClose, setIsOpen]);\n const handleEnter = useCallback(event => {\n // Avoid triggering the 'confirm' action when a button is focused,\n // as this can cause a double submission.\n const isConfirmOrCancelButton = event.target === cancelButtonRef.current || event.target === confirmButtonRef.current;\n if (!isConfirmOrCancelButton && event.key === 'Enter') {\n handleEvent(onConfirm)(event);\n }\n }, [handleEvent, onConfirm]);\n const cancelLabel = cancelButtonText !== null && cancelButtonText !== void 0 ? cancelButtonText : __('Cancel');\n const confirmLabel = confirmButtonText !== null && confirmButtonText !== void 0 ? confirmButtonText : __('OK');\n return /*#__PURE__*/_jsx(_Fragment, {\n children: isOpen && /*#__PURE__*/_jsx(Modal, {\n onRequestClose: handleEvent(onCancel),\n onKeyDown: handleEnter,\n closeButtonLabel: cancelLabel,\n isDismissible: true,\n ref: forwardedRef,\n overlayClassName: wrapperClassName,\n __experimentalHideHeader: true,\n ...otherProps,\n children: /*#__PURE__*/_jsxs(VStack, {\n spacing: 8,\n children: [/*#__PURE__*/_jsx(Text, {\n children: children\n }), /*#__PURE__*/_jsxs(Flex, {\n direction: \"row\",\n justify: \"flex-end\",\n children: [/*#__PURE__*/_jsx(Button, {\n __next40pxDefaultSize: true,\n ref: cancelButtonRef,\n variant: \"tertiary\",\n onClick: handleEvent(onCancel),\n accessibleWhenDisabled: true,\n disabled: isBusy,\n children: cancelLabel\n }), /*#__PURE__*/_jsx(Button, {\n __next40pxDefaultSize: true,\n ref: confirmButtonRef,\n variant: \"primary\",\n onClick: handleEvent(onConfirm),\n accessibleWhenDisabled: true,\n disabled: isBusy,\n isBusy: isBusy,\n children: confirmLabel\n })]\n })]\n })\n })\n });\n};\n\n/**\n * `ConfirmDialog` is built of top of [`Modal`](/packages/components/src/modal/README.md)\n * and displays a confirmation dialog, with _confirm_ and _cancel_ buttons.\n * The dialog is confirmed by clicking the _confirm_ button or by pressing the `Enter` key.\n * It is cancelled (closed) by clicking the _cancel_ button, by pressing the `ESC` key, or by\n * clicking outside the dialog focus (i.e, the overlay).\n *\n * `ConfirmDialog` has two main implicit modes: controlled and uncontrolled.\n *\n * UnControlled:\n *\n * Allows the component to be used standalone, just by declaring it as part of another React's component render method:\n * - It will be automatically open (displayed) upon mounting;\n * - It will be automatically closed when clicking the _cancel_ button, by pressing the `ESC` key, or by clicking outside the dialog focus (i.e, the overlay);\n * - `onCancel` is not mandatory but can be passed. Even if passed, the dialog will still be able to close itself.\n *\n * Activating this mode is as simple as omitting the `isOpen` prop. The only mandatory prop, in this case, is the `onConfirm` callback. The message is passed as the `children`. You can pass any JSX you'd like, which allows to further format the message or include sub-component if you'd like:\n *\n * ```jsx\n * import { __experimentalConfirmDialog as ConfirmDialog } from '@wordpress/components';\n *\n * function Example() {\n * \treturn (\n * \t\t<ConfirmDialog onConfirm={ () => console.debug( ' Confirmed! ' ) }>\n * \t\t\tAre you sure? <strong>This action cannot be undone!</strong>\n * \t\t</ConfirmDialog>\n * \t);\n * }\n * ```\n *\n *\n * Controlled mode:\n * Let the parent component control when the dialog is open/closed. It's activated when a\n * boolean value is passed to `isOpen`:\n * - It will not be automatically closed. You need to let it know when to open/close by updating the value of the `isOpen` prop;\n * - Both `onConfirm` and the `onCancel` callbacks are mandatory props in this mode;\n * - You'll want to update the state that controls `isOpen` by updating it from the `onCancel` and `onConfirm` callbacks.\n *\n *```jsx\n * import { __experimentalConfirmDialog as ConfirmDialog } from '@wordpress/components';\n * import { useState } from '@wordpress/element';\n *\n * function Example() {\n * \tconst [ isOpen, setIsOpen ] = useState( true );\n *\n * \tconst handleConfirm = () => {\n * \t\tconsole.debug( 'Confirmed!' );\n * \t\tsetIsOpen( false );\n * \t};\n *\n * \tconst handleCancel = () => {\n * \t\tconsole.debug( 'Cancelled!' );\n * \t\tsetIsOpen( false );\n * \t};\n *\n * \treturn (\n * \t\t<ConfirmDialog\n * \t\t\tisOpen={ isOpen }\n * \t\t\tonConfirm={ handleConfirm }\n * \t\t\tonCancel={ handleCancel }\n * \t\t>\n * \t\t\tAre you sure? <strong>This action cannot be undone!</strong>\n * \t\t</ConfirmDialog>\n * \t);\n * }\n * ```\n */\nexport const ConfirmDialog = contextConnect(UnconnectedConfirmDialog, 'ConfirmDialog');\nexport default ConfirmDialog;"],
5
- "mappings": ";AAGA,SAAS,UAAU;AACnB,SAAS,aAAa,WAAW,QAAQ,gBAAgB;AAKzD,OAAO,WAAW;AAClB,SAAS,kBAAkB,sBAAsB;AACjD,SAAS,YAAY;AACrB,OAAO,YAAY;AACnB,SAAS,YAAY;AACrB,SAAS,cAAc;AACvB,YAAY,YAAY;AACxB,SAAS,aAAa;AACtB,SAAS,OAAO,MAAM,QAAQ,OAAO,YAAY,iBAAiB;AAClE,IAAM,2BAA2B,CAAC,OAAO,iBAAiB;AACxD,QAAM;AAAA,IACJ,QAAQ;AAAA,IACR;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,IAAI,iBAAiB,OAAO,eAAe;AAC3C,QAAM,KAAK,MAAM;AACjB,QAAM,mBAAmB,GAAU,cAAO;AAC1C,QAAM,kBAAkB,OAAO;AAC/B,QAAM,mBAAmB,OAAO;AAChC,QAAM,CAAC,QAAQ,SAAS,IAAI,SAAS;AACrC,QAAM,CAAC,iBAAiB,kBAAkB,IAAI,SAAS;AACvD,YAAU,MAAM;AAKd,UAAM,cAAc,OAAO,eAAe;AAC1C,cAAU,cAAc,aAAa,IAAI;AACzC,uBAAmB,CAAC,WAAW;AAAA,EACjC,GAAG,CAAC,UAAU,CAAC;AACf,QAAM,cAAc,YAAY,cAAY,WAAS;AACnD,eAAW,KAAK;AAChB,QAAI,iBAAiB;AACnB,gBAAU,KAAK;AAAA,IACjB;AAAA,EACF,GAAG,CAAC,iBAAiB,SAAS,CAAC;AAC/B,QAAM,cAAc,YAAY,WAAS;AAGvC,UAAM,0BAA0B,MAAM,WAAW,gBAAgB,WAAW,MAAM,WAAW,iBAAiB;AAC9G,QAAI,CAAC,2BAA2B,MAAM,QAAQ,SAAS;AACrD,kBAAY,SAAS,EAAE,KAAK;AAAA,IAC9B;AAAA,EACF,GAAG,CAAC,aAAa,SAAS,CAAC;AAC3B,QAAM,cAAc,qBAAqB,QAAQ,qBAAqB,SAAS,mBAAmB,GAAG,QAAQ;AAC7G,QAAM,eAAe,sBAAsB,QAAQ,sBAAsB,SAAS,oBAAoB,GAAG,IAAI;AAC7G,SAAoB,qBAAK,WAAW;AAAA,IAClC,UAAU,UAAuB,qBAAK,OAAO;AAAA,MAC3C,gBAAgB,YAAY,QAAQ;AAAA,MACpC,WAAW;AAAA,MACX,kBAAkB;AAAA,MAClB,eAAe;AAAA,MACf,KAAK;AAAA,MACL,kBAAkB;AAAA,MAClB,0BAA0B;AAAA,MAC1B,GAAG;AAAA,MACH,UAAuB,sBAAM,QAAQ;AAAA,QACnC,SAAS;AAAA,QACT,UAAU,CAAc,qBAAK,MAAM;AAAA,UACjC;AAAA,QACF,CAAC,GAAgB,sBAAM,MAAM;AAAA,UAC3B,WAAW;AAAA,UACX,SAAS;AAAA,UACT,UAAU,CAAc,qBAAK,QAAQ;AAAA,YACnC,uBAAuB;AAAA,YACvB,KAAK;AAAA,YACL,SAAS;AAAA,YACT,SAAS,YAAY,QAAQ;AAAA,YAC7B,wBAAwB;AAAA,YACxB,UAAU;AAAA,YACV,UAAU;AAAA,UACZ,CAAC,GAAgB,qBAAK,QAAQ;AAAA,YAC5B,uBAAuB;AAAA,YACvB,KAAK;AAAA,YACL,SAAS;AAAA,YACT,SAAS,YAAY,SAAS;AAAA,YAC9B,wBAAwB;AAAA,YACxB,UAAU;AAAA,YACV;AAAA,YACA,UAAU;AAAA,UACZ,CAAC,CAAC;AAAA,QACJ,CAAC,CAAC;AAAA,MACJ,CAAC;AAAA,IACH,CAAC;AAAA,EACH,CAAC;AACH;AAqEO,IAAM,gBAAgB,eAAe,0BAA0B,eAAe;AACrF,IAAO,oBAAQ;",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useCallback, useEffect, useRef, useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport Modal from '../modal';\nimport { useContextSystem, contextConnect } from '../context';\nimport { Flex } from '../flex';\nimport Button from '../button';\nimport { Text } from '../text';\nimport { VStack } from '../v-stack';\nimport * as styles from './styles';\nimport { useCx } from '../utils/hooks/use-cx';\nimport { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nconst UnconnectedConfirmDialog = (props, forwardedRef) => {\n const {\n isOpen: isOpenProp,\n onConfirm,\n onCancel,\n children,\n confirmButtonText,\n cancelButtonText,\n isBusy,\n ...otherProps\n } = useContextSystem(props, 'ConfirmDialog');\n const cx = useCx();\n const wrapperClassName = cx(styles.wrapper);\n const cancelButtonRef = useRef();\n const confirmButtonRef = useRef();\n const [isOpen, setIsOpen] = useState();\n const [shouldSelfClose, setShouldSelfClose] = useState();\n useEffect(() => {\n // We only allow the dialog to close itself if `isOpenProp` is *not* set.\n // If `isOpenProp` is set, then it (probably) means it's controlled by a\n // parent component. In that case, `shouldSelfClose` might do more harm than\n // good, so we disable it.\n const isIsOpenSet = typeof isOpenProp !== 'undefined';\n setIsOpen(isIsOpenSet ? isOpenProp : true);\n setShouldSelfClose(!isIsOpenSet);\n }, [isOpenProp]);\n const handleEvent = useCallback(callback => event => {\n callback?.(event);\n if (shouldSelfClose) {\n setIsOpen(false);\n }\n }, [shouldSelfClose, setIsOpen]);\n const handleEnter = useCallback(event => {\n // Avoid triggering the 'confirm' action when a button is focused,\n // as this can cause a double submission.\n const isConfirmOrCancelButton = event.target === cancelButtonRef.current || event.target === confirmButtonRef.current;\n if (!isConfirmOrCancelButton && event.key === 'Enter') {\n handleEvent(onConfirm)(event);\n }\n }, [handleEvent, onConfirm]);\n const cancelLabel = cancelButtonText ?? __('Cancel');\n const confirmLabel = confirmButtonText ?? __('OK');\n return /*#__PURE__*/_jsx(_Fragment, {\n children: isOpen && /*#__PURE__*/_jsx(Modal, {\n onRequestClose: handleEvent(onCancel),\n onKeyDown: handleEnter,\n closeButtonLabel: cancelLabel,\n isDismissible: true,\n ref: forwardedRef,\n overlayClassName: wrapperClassName,\n __experimentalHideHeader: true,\n ...otherProps,\n children: /*#__PURE__*/_jsxs(VStack, {\n spacing: 8,\n children: [/*#__PURE__*/_jsx(Text, {\n children: children\n }), /*#__PURE__*/_jsxs(Flex, {\n direction: \"row\",\n justify: \"flex-end\",\n children: [/*#__PURE__*/_jsx(Button, {\n __next40pxDefaultSize: true,\n ref: cancelButtonRef,\n variant: \"tertiary\",\n onClick: handleEvent(onCancel),\n accessibleWhenDisabled: true,\n disabled: isBusy,\n children: cancelLabel\n }), /*#__PURE__*/_jsx(Button, {\n __next40pxDefaultSize: true,\n ref: confirmButtonRef,\n variant: \"primary\",\n onClick: handleEvent(onConfirm),\n accessibleWhenDisabled: true,\n disabled: isBusy,\n isBusy: isBusy,\n children: confirmLabel\n })]\n })]\n })\n })\n });\n};\n\n/**\n * `ConfirmDialog` is built of top of [`Modal`](/packages/components/src/modal/README.md)\n * and displays a confirmation dialog, with _confirm_ and _cancel_ buttons.\n * The dialog is confirmed by clicking the _confirm_ button or by pressing the `Enter` key.\n * It is cancelled (closed) by clicking the _cancel_ button, by pressing the `ESC` key, or by\n * clicking outside the dialog focus (i.e, the overlay).\n *\n * `ConfirmDialog` has two main implicit modes: controlled and uncontrolled.\n *\n * UnControlled:\n *\n * Allows the component to be used standalone, just by declaring it as part of another React's component render method:\n * - It will be automatically open (displayed) upon mounting;\n * - It will be automatically closed when clicking the _cancel_ button, by pressing the `ESC` key, or by clicking outside the dialog focus (i.e, the overlay);\n * - `onCancel` is not mandatory but can be passed. Even if passed, the dialog will still be able to close itself.\n *\n * Activating this mode is as simple as omitting the `isOpen` prop. The only mandatory prop, in this case, is the `onConfirm` callback. The message is passed as the `children`. You can pass any JSX you'd like, which allows to further format the message or include sub-component if you'd like:\n *\n * ```jsx\n * import { __experimentalConfirmDialog as ConfirmDialog } from '@wordpress/components';\n *\n * function Example() {\n * \treturn (\n * \t\t<ConfirmDialog onConfirm={ () => console.debug( ' Confirmed! ' ) }>\n * \t\t\tAre you sure? <strong>This action cannot be undone!</strong>\n * \t\t</ConfirmDialog>\n * \t);\n * }\n * ```\n *\n *\n * Controlled mode:\n * Let the parent component control when the dialog is open/closed. It's activated when a\n * boolean value is passed to `isOpen`:\n * - It will not be automatically closed. You need to let it know when to open/close by updating the value of the `isOpen` prop;\n * - Both `onConfirm` and the `onCancel` callbacks are mandatory props in this mode;\n * - You'll want to update the state that controls `isOpen` by updating it from the `onCancel` and `onConfirm` callbacks.\n *\n *```jsx\n * import { __experimentalConfirmDialog as ConfirmDialog } from '@wordpress/components';\n * import { useState } from '@wordpress/element';\n *\n * function Example() {\n * \tconst [ isOpen, setIsOpen ] = useState( true );\n *\n * \tconst handleConfirm = () => {\n * \t\tconsole.debug( 'Confirmed!' );\n * \t\tsetIsOpen( false );\n * \t};\n *\n * \tconst handleCancel = () => {\n * \t\tconsole.debug( 'Cancelled!' );\n * \t\tsetIsOpen( false );\n * \t};\n *\n * \treturn (\n * \t\t<ConfirmDialog\n * \t\t\tisOpen={ isOpen }\n * \t\t\tonConfirm={ handleConfirm }\n * \t\t\tonCancel={ handleCancel }\n * \t\t>\n * \t\t\tAre you sure? <strong>This action cannot be undone!</strong>\n * \t\t</ConfirmDialog>\n * \t);\n * }\n * ```\n */\nexport const ConfirmDialog = contextConnect(UnconnectedConfirmDialog, 'ConfirmDialog');\nexport default ConfirmDialog;"],
5
+ "mappings": ";AAGA,SAAS,UAAU;AACnB,SAAS,aAAa,WAAW,QAAQ,gBAAgB;AAKzD,OAAO,WAAW;AAClB,SAAS,kBAAkB,sBAAsB;AACjD,SAAS,YAAY;AACrB,OAAO,YAAY;AACnB,SAAS,YAAY;AACrB,SAAS,cAAc;AACvB,YAAY,YAAY;AACxB,SAAS,aAAa;AACtB,SAAS,OAAO,MAAM,QAAQ,OAAO,YAAY,iBAAiB;AAClE,IAAM,2BAA2B,CAAC,OAAO,iBAAiB;AACxD,QAAM;AAAA,IACJ,QAAQ;AAAA,IACR;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,IAAI,iBAAiB,OAAO,eAAe;AAC3C,QAAM,KAAK,MAAM;AACjB,QAAM,mBAAmB,GAAU,cAAO;AAC1C,QAAM,kBAAkB,OAAO;AAC/B,QAAM,mBAAmB,OAAO;AAChC,QAAM,CAAC,QAAQ,SAAS,IAAI,SAAS;AACrC,QAAM,CAAC,iBAAiB,kBAAkB,IAAI,SAAS;AACvD,YAAU,MAAM;AAKd,UAAM,cAAc,OAAO,eAAe;AAC1C,cAAU,cAAc,aAAa,IAAI;AACzC,uBAAmB,CAAC,WAAW;AAAA,EACjC,GAAG,CAAC,UAAU,CAAC;AACf,QAAM,cAAc,YAAY,cAAY,WAAS;AACnD,eAAW,KAAK;AAChB,QAAI,iBAAiB;AACnB,gBAAU,KAAK;AAAA,IACjB;AAAA,EACF,GAAG,CAAC,iBAAiB,SAAS,CAAC;AAC/B,QAAM,cAAc,YAAY,WAAS;AAGvC,UAAM,0BAA0B,MAAM,WAAW,gBAAgB,WAAW,MAAM,WAAW,iBAAiB;AAC9G,QAAI,CAAC,2BAA2B,MAAM,QAAQ,SAAS;AACrD,kBAAY,SAAS,EAAE,KAAK;AAAA,IAC9B;AAAA,EACF,GAAG,CAAC,aAAa,SAAS,CAAC;AAC3B,QAAM,cAAc,oBAAoB,GAAG,QAAQ;AACnD,QAAM,eAAe,qBAAqB,GAAG,IAAI;AACjD,SAAoB,qBAAK,WAAW;AAAA,IAClC,UAAU,UAAuB,qBAAK,OAAO;AAAA,MAC3C,gBAAgB,YAAY,QAAQ;AAAA,MACpC,WAAW;AAAA,MACX,kBAAkB;AAAA,MAClB,eAAe;AAAA,MACf,KAAK;AAAA,MACL,kBAAkB;AAAA,MAClB,0BAA0B;AAAA,MAC1B,GAAG;AAAA,MACH,UAAuB,sBAAM,QAAQ;AAAA,QACnC,SAAS;AAAA,QACT,UAAU,CAAc,qBAAK,MAAM;AAAA,UACjC;AAAA,QACF,CAAC,GAAgB,sBAAM,MAAM;AAAA,UAC3B,WAAW;AAAA,UACX,SAAS;AAAA,UACT,UAAU,CAAc,qBAAK,QAAQ;AAAA,YACnC,uBAAuB;AAAA,YACvB,KAAK;AAAA,YACL,SAAS;AAAA,YACT,SAAS,YAAY,QAAQ;AAAA,YAC7B,wBAAwB;AAAA,YACxB,UAAU;AAAA,YACV,UAAU;AAAA,UACZ,CAAC,GAAgB,qBAAK,QAAQ;AAAA,YAC5B,uBAAuB;AAAA,YACvB,KAAK;AAAA,YACL,SAAS;AAAA,YACT,SAAS,YAAY,SAAS;AAAA,YAC9B,wBAAwB;AAAA,YACxB,UAAU;AAAA,YACV;AAAA,YACA,UAAU;AAAA,UACZ,CAAC,CAAC;AAAA,QACJ,CAAC,CAAC;AAAA,MACJ,CAAC;AAAA,IACH,CAAC;AAAA,EACH,CAAC;AACH;AAqEO,IAAM,gBAAgB,eAAe,0BAA0B,eAAe;AACrF,IAAO,oBAAQ;",
6
6
  "names": []
7
7
  }
@@ -27,7 +27,7 @@ function useContextSystemBridge({
27
27
  }
28
28
  }, [value]);
29
29
  const config = useMemo(() => {
30
- return deepmerge(parentContext !== null && parentContext !== void 0 ? parentContext : {}, value !== null && value !== void 0 ? value : {}, {
30
+ return deepmerge(parentContext ?? {}, value ?? {}, {
31
31
  isMergeableObject: isPlainObject
32
32
  });
33
33
  }, [parentContext, value]);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/context/context-system-provider.js"],
4
- "sourcesContent": ["/**\n * External dependencies\n */\nimport deepmerge from 'deepmerge';\nimport fastDeepEqual from 'fast-deep-equal/es6/index.js';\n// @ts-expect-error https://github.com/jonschlinkert/is-plain-object/pull/47\nimport { isPlainObject } from 'is-plain-object';\n\n/**\n * WordPress dependencies\n */\nimport { createContext, useContext, useRef, useMemo, memo } from '@wordpress/element';\nimport warn from '@wordpress/warning';\n\n/**\n * Internal dependencies\n */\nimport { useUpdateEffect } from '../utils';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const ComponentsContext = createContext(/** @type {Record<string, any>} */{});\nComponentsContext.displayName = 'ComponentsContext';\nexport const useComponentsContext = () => useContext(ComponentsContext);\n\n/**\n * Consolidates incoming ContextSystem values with a (potential) parent ContextSystem value.\n *\n * Note: This function will warn if it detects an un-memoized `value`\n *\n * @param {Object} props\n * @param {Record<string, any>} props.value\n * @return {Record<string, any>} The consolidated value.\n */\nfunction useContextSystemBridge({\n value\n}) {\n const parentContext = useComponentsContext();\n const valueRef = useRef(value);\n useUpdateEffect(() => {\n if (\n // Objects are equivalent.\n fastDeepEqual(valueRef.current, value) &&\n // But not the same reference.\n valueRef.current !== value) {\n globalThis.SCRIPT_DEBUG === true ? warn(`Please memoize your context: ${JSON.stringify(value)}`) : void 0;\n }\n }, [value]);\n\n // `parentContext` will always be memoized (i.e., the result of this hook itself)\n // or the default value from when the `ComponentsContext` was originally\n // initialized (which will never change, it's a static variable)\n // so this memoization will prevent `deepmerge()` from rerunning unless\n // the references to `value` change OR the `parentContext` has an actual material change\n // (because again, it's guaranteed to be memoized or a static reference to the empty object\n // so we know that the only changes for `parentContext` are material ones... i.e., why we\n // don't have to warn in the `useUpdateEffect` hook above for `parentContext` and we only\n // need to bother with the `value`). The `useUpdateEffect` above will ensure that we are\n // correctly warning when the `value` isn't being properly memoized. All of that to say\n // that this should be super safe to assume that `useMemo` will only run on actual\n // changes to the two dependencies, therefore saving us calls to `deepmerge()`!\n const config = useMemo(() => {\n // Deep clone `parentContext` to avoid mutating it later.\n return deepmerge(parentContext !== null && parentContext !== void 0 ? parentContext : {}, value !== null && value !== void 0 ? value : {}, {\n isMergeableObject: isPlainObject\n });\n }, [parentContext, value]);\n return config;\n}\n\n/**\n * A Provider component that can modify props for connected components within\n * the Context system.\n *\n * @example\n * ```jsx\n * <ContextSystemProvider value={{ Button: { size: 'small' }}}>\n * <Button>...</Button>\n * </ContextSystemProvider>\n * ```\n *\n * @template {Record<string, any>} T\n * @param {Object} options\n * @param {import('react').ReactNode} options.children Children to render.\n * @param {T} options.value Props to render into connected components.\n * @return {JSX.Element} A Provider wrapped component.\n */\nconst BaseContextSystemProvider = ({\n children,\n value\n}) => {\n const contextValue = useContextSystemBridge({\n value\n });\n return /*#__PURE__*/_jsx(ComponentsContext.Provider, {\n value: contextValue,\n children: children\n });\n};\nexport const ContextSystemProvider = memo(BaseContextSystemProvider);"],
5
- "mappings": ";AAGA,OAAO,eAAe;AACtB,OAAO,mBAAmB;AAE1B,SAAS,qBAAqB;AAK9B,SAAS,eAAe,YAAY,QAAQ,SAAS,YAAY;AACjE,OAAO,UAAU;AAKjB,SAAS,uBAAuB;AAChC,SAAS,OAAO,YAAY;AACrB,IAAM,oBAAoB;AAAA;AAAA,EAAgD,CAAC;AAAC;AACnF,kBAAkB,cAAc;AACzB,IAAM,uBAAuB,MAAM,WAAW,iBAAiB;AAWtE,SAAS,uBAAuB;AAAA,EAC9B;AACF,GAAG;AACD,QAAM,gBAAgB,qBAAqB;AAC3C,QAAM,WAAW,OAAO,KAAK;AAC7B,kBAAgB,MAAM;AACpB;AAAA;AAAA,MAEA,cAAc,SAAS,SAAS,KAAK;AAAA,MAErC,SAAS,YAAY;AAAA,MAAO;AAC1B,iBAAW,iBAAiB,OAAO,KAAK,gCAAgC,KAAK,UAAU,KAAK,CAAC,EAAE,IAAI;AAAA,IACrG;AAAA,EACF,GAAG,CAAC,KAAK,CAAC;AAcV,QAAM,SAAS,QAAQ,MAAM;AAE3B,WAAO,UAAU,kBAAkB,QAAQ,kBAAkB,SAAS,gBAAgB,CAAC,GAAG,UAAU,QAAQ,UAAU,SAAS,QAAQ,CAAC,GAAG;AAAA,MACzI,mBAAmB;AAAA,IACrB,CAAC;AAAA,EACH,GAAG,CAAC,eAAe,KAAK,CAAC;AACzB,SAAO;AACT;AAmBA,IAAM,4BAA4B,CAAC;AAAA,EACjC;AAAA,EACA;AACF,MAAM;AACJ,QAAM,eAAe,uBAAuB;AAAA,IAC1C;AAAA,EACF,CAAC;AACD,SAAoB,qBAAK,kBAAkB,UAAU;AAAA,IACnD,OAAO;AAAA,IACP;AAAA,EACF,CAAC;AACH;AACO,IAAM,wBAAwB,KAAK,yBAAyB;",
4
+ "sourcesContent": ["/**\n * External dependencies\n */\nimport deepmerge from 'deepmerge';\nimport fastDeepEqual from 'fast-deep-equal/es6/index.js';\n// @ts-expect-error https://github.com/jonschlinkert/is-plain-object/pull/47\nimport { isPlainObject } from 'is-plain-object';\n\n/**\n * WordPress dependencies\n */\nimport { createContext, useContext, useRef, useMemo, memo } from '@wordpress/element';\nimport warn from '@wordpress/warning';\n\n/**\n * Internal dependencies\n */\nimport { useUpdateEffect } from '../utils';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const ComponentsContext = createContext(/** @type {Record<string, any>} */{});\nComponentsContext.displayName = 'ComponentsContext';\nexport const useComponentsContext = () => useContext(ComponentsContext);\n\n/**\n * Consolidates incoming ContextSystem values with a (potential) parent ContextSystem value.\n *\n * Note: This function will warn if it detects an un-memoized `value`\n *\n * @param {Object} props\n * @param {Record<string, any>} props.value\n * @return {Record<string, any>} The consolidated value.\n */\nfunction useContextSystemBridge({\n value\n}) {\n const parentContext = useComponentsContext();\n const valueRef = useRef(value);\n useUpdateEffect(() => {\n if (\n // Objects are equivalent.\n fastDeepEqual(valueRef.current, value) &&\n // But not the same reference.\n valueRef.current !== value) {\n globalThis.SCRIPT_DEBUG === true ? warn(`Please memoize your context: ${JSON.stringify(value)}`) : void 0;\n }\n }, [value]);\n\n // `parentContext` will always be memoized (i.e., the result of this hook itself)\n // or the default value from when the `ComponentsContext` was originally\n // initialized (which will never change, it's a static variable)\n // so this memoization will prevent `deepmerge()` from rerunning unless\n // the references to `value` change OR the `parentContext` has an actual material change\n // (because again, it's guaranteed to be memoized or a static reference to the empty object\n // so we know that the only changes for `parentContext` are material ones... i.e., why we\n // don't have to warn in the `useUpdateEffect` hook above for `parentContext` and we only\n // need to bother with the `value`). The `useUpdateEffect` above will ensure that we are\n // correctly warning when the `value` isn't being properly memoized. All of that to say\n // that this should be super safe to assume that `useMemo` will only run on actual\n // changes to the two dependencies, therefore saving us calls to `deepmerge()`!\n const config = useMemo(() => {\n // Deep clone `parentContext` to avoid mutating it later.\n return deepmerge(parentContext ?? {}, value ?? {}, {\n isMergeableObject: isPlainObject\n });\n }, [parentContext, value]);\n return config;\n}\n\n/**\n * A Provider component that can modify props for connected components within\n * the Context system.\n *\n * @example\n * ```jsx\n * <ContextSystemProvider value={{ Button: { size: 'small' }}}>\n * <Button>...</Button>\n * </ContextSystemProvider>\n * ```\n *\n * @template {Record<string, any>} T\n * @param {Object} options\n * @param {import('react').ReactNode} options.children Children to render.\n * @param {T} options.value Props to render into connected components.\n * @return {JSX.Element} A Provider wrapped component.\n */\nconst BaseContextSystemProvider = ({\n children,\n value\n}) => {\n const contextValue = useContextSystemBridge({\n value\n });\n return /*#__PURE__*/_jsx(ComponentsContext.Provider, {\n value: contextValue,\n children: children\n });\n};\nexport const ContextSystemProvider = memo(BaseContextSystemProvider);"],
5
+ "mappings": ";AAGA,OAAO,eAAe;AACtB,OAAO,mBAAmB;AAE1B,SAAS,qBAAqB;AAK9B,SAAS,eAAe,YAAY,QAAQ,SAAS,YAAY;AACjE,OAAO,UAAU;AAKjB,SAAS,uBAAuB;AAChC,SAAS,OAAO,YAAY;AACrB,IAAM,oBAAoB;AAAA;AAAA,EAAgD,CAAC;AAAC;AACnF,kBAAkB,cAAc;AACzB,IAAM,uBAAuB,MAAM,WAAW,iBAAiB;AAWtE,SAAS,uBAAuB;AAAA,EAC9B;AACF,GAAG;AACD,QAAM,gBAAgB,qBAAqB;AAC3C,QAAM,WAAW,OAAO,KAAK;AAC7B,kBAAgB,MAAM;AACpB;AAAA;AAAA,MAEA,cAAc,SAAS,SAAS,KAAK;AAAA,MAErC,SAAS,YAAY;AAAA,MAAO;AAC1B,iBAAW,iBAAiB,OAAO,KAAK,gCAAgC,KAAK,UAAU,KAAK,CAAC,EAAE,IAAI;AAAA,IACrG;AAAA,EACF,GAAG,CAAC,KAAK,CAAC;AAcV,QAAM,SAAS,QAAQ,MAAM;AAE3B,WAAO,UAAU,iBAAiB,CAAC,GAAG,SAAS,CAAC,GAAG;AAAA,MACjD,mBAAmB;AAAA,IACrB,CAAC;AAAA,EACH,GAAG,CAAC,eAAe,KAAK,CAAC;AACzB,SAAO;AACT;AAmBA,IAAM,4BAA4B,CAAC;AAAA,EACjC;AAAA,EACA;AACF,MAAM;AACJ,QAAM,eAAe,uBAAuB;AAAA,IAC1C;AAAA,EACF,CAAC;AACD,SAAoB,qBAAK,kBAAkB,UAAU;AAAA,IACnD,OAAO;AAAA,IACP;AAAA,EACF,CAAC;AACH;AACO,IAAM,wBAAwB,KAAK,yBAAyB;",
6
6
  "names": []
7
7
  }
@@ -15,8 +15,7 @@ var GradientAnglePicker = ({
15
15
  hasGradient,
16
16
  onChange
17
17
  }) => {
18
- var _gradientAST$orientat;
19
- const angle = (_gradientAST$orientat = gradientAST?.orientation?.value) !== null && _gradientAST$orientat !== void 0 ? _gradientAST$orientat : DEFAULT_LINEAR_GRADIENT_ANGLE;
18
+ const angle = gradientAST?.orientation?.value ?? DEFAULT_LINEAR_GRADIENT_ANGLE;
20
19
  const onAngleChange = (newAngle) => {
21
20
  onChange(serializeGradient({
22
21
  ...gradientAST,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/custom-gradient-picker/index.tsx"],
4
- "sourcesContent": ["/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport AnglePickerControl from '../angle-picker-control';\nimport CustomGradientBar from './gradient-bar';\nimport { Flex } from '../flex';\nimport SelectControl from '../select-control';\nimport { VStack } from '../v-stack';\nimport { getGradientAstWithDefault, getLinearGradientRepresentation, getGradientAstWithControlPoints, getStopCssColor } from './utils';\nimport { serializeGradient } from './serializer';\nimport { DEFAULT_LINEAR_GRADIENT_ANGLE, HORIZONTAL_GRADIENT_ORIENTATION, GRADIENT_OPTIONS } from './constants';\nimport { AccessoryWrapper, SelectWrapper } from './styles/custom-gradient-picker-styles';\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst GradientAnglePicker = ({\n gradientAST,\n hasGradient,\n onChange\n}) => {\n var _gradientAST$orientat;\n const angle = (_gradientAST$orientat = gradientAST?.orientation?.value) !== null && _gradientAST$orientat !== void 0 ? _gradientAST$orientat : DEFAULT_LINEAR_GRADIENT_ANGLE;\n const onAngleChange = newAngle => {\n onChange(serializeGradient({\n ...gradientAST,\n orientation: {\n type: 'angular',\n value: `${newAngle}`\n }\n }));\n };\n return /*#__PURE__*/_jsx(AnglePickerControl, {\n onChange: onAngleChange,\n value: hasGradient ? angle : ''\n });\n};\nconst GradientTypePicker = ({\n gradientAST,\n hasGradient,\n onChange\n}) => {\n const {\n type\n } = gradientAST;\n const onSetLinearGradient = () => {\n onChange(serializeGradient({\n ...gradientAST,\n orientation: gradientAST.orientation ? undefined : HORIZONTAL_GRADIENT_ORIENTATION,\n type: 'linear-gradient'\n }));\n };\n const onSetRadialGradient = () => {\n const {\n orientation,\n ...restGradientAST\n } = gradientAST;\n onChange(serializeGradient({\n ...restGradientAST,\n type: 'radial-gradient'\n }));\n };\n const handleOnChange = next => {\n if (next === 'linear-gradient') {\n onSetLinearGradient();\n }\n if (next === 'radial-gradient') {\n onSetRadialGradient();\n }\n };\n return /*#__PURE__*/_jsx(SelectControl, {\n className: \"components-custom-gradient-picker__type-picker\",\n label: __('Type'),\n labelPosition: \"top\",\n onChange: handleOnChange,\n options: GRADIENT_OPTIONS,\n size: \"__unstable-large\",\n value: hasGradient ? type : undefined\n });\n};\n\n/**\n * CustomGradientPicker is a React component that renders a UI for specifying\n * linear or radial gradients. Radial gradients are displayed in the picker as\n * a slice of the gradient from the center to the outside.\n *\n * ```jsx\n * import { CustomGradientPicker } from '@wordpress/components';\n * import { useState } from '@wordpress/element';\n *\n * const MyCustomGradientPicker = () => {\n * const [ gradient, setGradient ] = useState();\n *\n * return (\n * <CustomGradientPicker\n *\t\t\tvalue={ gradient }\n *\t\t\tonChange={ setGradient }\n * />\n * );\n * };\n * ```\n */\nexport function CustomGradientPicker({\n value,\n onChange,\n enableAlpha = true,\n __experimentalIsRenderedInSidebar = false\n}) {\n const {\n gradientAST,\n hasGradient\n } = getGradientAstWithDefault(value);\n\n // On radial gradients the bar should display a linear gradient.\n // On radial gradients the bar represents a slice of the gradient from the center until the outside.\n // On liner gradients the bar represents the color stops from left to right independently of the angle.\n const background = getLinearGradientRepresentation(gradientAST);\n\n // Control points color option may be hex from presets, custom colors will be rgb.\n // The position should always be a percentage.\n const controlPoints = gradientAST.colorStops.map(colorStop => {\n return {\n color: getStopCssColor(colorStop),\n // Although it's already been checked by `hasUnsupportedLength` in `getGradientAstWithDefault`,\n // TypeScript doesn't know that `colorStop.length` is not undefined here.\n // @ts-expect-error\n position: parseInt(colorStop.length.value)\n };\n });\n return /*#__PURE__*/_jsxs(VStack, {\n spacing: 4,\n className: \"components-custom-gradient-picker\",\n children: [/*#__PURE__*/_jsx(CustomGradientBar, {\n __experimentalIsRenderedInSidebar: __experimentalIsRenderedInSidebar,\n disableAlpha: !enableAlpha,\n background: background,\n hasGradient: hasGradient,\n value: controlPoints,\n onChange: newControlPoints => {\n onChange(serializeGradient(getGradientAstWithControlPoints(gradientAST, newControlPoints)));\n }\n }), /*#__PURE__*/_jsxs(Flex, {\n gap: 3,\n className: \"components-custom-gradient-picker__ui-line\",\n children: [/*#__PURE__*/_jsx(SelectWrapper, {\n children: /*#__PURE__*/_jsx(GradientTypePicker, {\n gradientAST: gradientAST,\n hasGradient: hasGradient,\n onChange: onChange\n })\n }), /*#__PURE__*/_jsx(AccessoryWrapper, {\n children: gradientAST.type === 'linear-gradient' && /*#__PURE__*/_jsx(GradientAnglePicker, {\n gradientAST: gradientAST,\n hasGradient: hasGradient,\n onChange: onChange\n })\n })]\n })]\n });\n}\nexport default CustomGradientPicker;"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport AnglePickerControl from '../angle-picker-control';\nimport CustomGradientBar from './gradient-bar';\nimport { Flex } from '../flex';\nimport SelectControl from '../select-control';\nimport { VStack } from '../v-stack';\nimport { getGradientAstWithDefault, getLinearGradientRepresentation, getGradientAstWithControlPoints, getStopCssColor } from './utils';\nimport { serializeGradient } from './serializer';\nimport { DEFAULT_LINEAR_GRADIENT_ANGLE, HORIZONTAL_GRADIENT_ORIENTATION, GRADIENT_OPTIONS } from './constants';\nimport { AccessoryWrapper, SelectWrapper } from './styles/custom-gradient-picker-styles';\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst GradientAnglePicker = ({\n gradientAST,\n hasGradient,\n onChange\n}) => {\n const angle = gradientAST?.orientation?.value ?? DEFAULT_LINEAR_GRADIENT_ANGLE;\n const onAngleChange = newAngle => {\n onChange(serializeGradient({\n ...gradientAST,\n orientation: {\n type: 'angular',\n value: `${newAngle}`\n }\n }));\n };\n return /*#__PURE__*/_jsx(AnglePickerControl, {\n onChange: onAngleChange,\n value: hasGradient ? angle : ''\n });\n};\nconst GradientTypePicker = ({\n gradientAST,\n hasGradient,\n onChange\n}) => {\n const {\n type\n } = gradientAST;\n const onSetLinearGradient = () => {\n onChange(serializeGradient({\n ...gradientAST,\n orientation: gradientAST.orientation ? undefined : HORIZONTAL_GRADIENT_ORIENTATION,\n type: 'linear-gradient'\n }));\n };\n const onSetRadialGradient = () => {\n const {\n orientation,\n ...restGradientAST\n } = gradientAST;\n onChange(serializeGradient({\n ...restGradientAST,\n type: 'radial-gradient'\n }));\n };\n const handleOnChange = next => {\n if (next === 'linear-gradient') {\n onSetLinearGradient();\n }\n if (next === 'radial-gradient') {\n onSetRadialGradient();\n }\n };\n return /*#__PURE__*/_jsx(SelectControl, {\n className: \"components-custom-gradient-picker__type-picker\",\n label: __('Type'),\n labelPosition: \"top\",\n onChange: handleOnChange,\n options: GRADIENT_OPTIONS,\n size: \"__unstable-large\",\n value: hasGradient ? type : undefined\n });\n};\n\n/**\n * CustomGradientPicker is a React component that renders a UI for specifying\n * linear or radial gradients. Radial gradients are displayed in the picker as\n * a slice of the gradient from the center to the outside.\n *\n * ```jsx\n * import { CustomGradientPicker } from '@wordpress/components';\n * import { useState } from '@wordpress/element';\n *\n * const MyCustomGradientPicker = () => {\n * const [ gradient, setGradient ] = useState();\n *\n * return (\n * <CustomGradientPicker\n *\t\t\tvalue={ gradient }\n *\t\t\tonChange={ setGradient }\n * />\n * );\n * };\n * ```\n */\nexport function CustomGradientPicker({\n value,\n onChange,\n enableAlpha = true,\n __experimentalIsRenderedInSidebar = false\n}) {\n const {\n gradientAST,\n hasGradient\n } = getGradientAstWithDefault(value);\n\n // On radial gradients the bar should display a linear gradient.\n // On radial gradients the bar represents a slice of the gradient from the center until the outside.\n // On liner gradients the bar represents the color stops from left to right independently of the angle.\n const background = getLinearGradientRepresentation(gradientAST);\n\n // Control points color option may be hex from presets, custom colors will be rgb.\n // The position should always be a percentage.\n const controlPoints = gradientAST.colorStops.map(colorStop => {\n return {\n color: getStopCssColor(colorStop),\n // Although it's already been checked by `hasUnsupportedLength` in `getGradientAstWithDefault`,\n // TypeScript doesn't know that `colorStop.length` is not undefined here.\n // @ts-expect-error\n position: parseInt(colorStop.length.value)\n };\n });\n return /*#__PURE__*/_jsxs(VStack, {\n spacing: 4,\n className: \"components-custom-gradient-picker\",\n children: [/*#__PURE__*/_jsx(CustomGradientBar, {\n __experimentalIsRenderedInSidebar: __experimentalIsRenderedInSidebar,\n disableAlpha: !enableAlpha,\n background: background,\n hasGradient: hasGradient,\n value: controlPoints,\n onChange: newControlPoints => {\n onChange(serializeGradient(getGradientAstWithControlPoints(gradientAST, newControlPoints)));\n }\n }), /*#__PURE__*/_jsxs(Flex, {\n gap: 3,\n className: \"components-custom-gradient-picker__ui-line\",\n children: [/*#__PURE__*/_jsx(SelectWrapper, {\n children: /*#__PURE__*/_jsx(GradientTypePicker, {\n gradientAST: gradientAST,\n hasGradient: hasGradient,\n onChange: onChange\n })\n }), /*#__PURE__*/_jsx(AccessoryWrapper, {\n children: gradientAST.type === 'linear-gradient' && /*#__PURE__*/_jsx(GradientAnglePicker, {\n gradientAST: gradientAST,\n hasGradient: hasGradient,\n onChange: onChange\n })\n })]\n })]\n });\n}\nexport default CustomGradientPicker;"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -18,7 +18,7 @@ function hasUnsupportedLength(item) {
18
18
  function getGradientAstWithDefault(value) {
19
19
  let gradientAST;
20
20
  let hasGradient = !!value;
21
- const valueToParse = value !== null && value !== void 0 ? value : DEFAULT_GRADIENT;
21
+ const valueToParse = value ?? DEFAULT_GRADIENT;
22
22
  try {
23
23
  gradientAST = gradientParser.parse(valueToParse)[0];
24
24
  } catch (error) {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/custom-gradient-picker/utils.ts"],
4
- "sourcesContent": ["/**\n * External dependencies\n */\nimport gradientParser from 'gradient-parser';\nimport { colord, extend } from 'colord';\nimport namesPlugin from 'colord/plugins/names';\n\n/**\n * Internal dependencies\n */\nimport { DEFAULT_GRADIENT, HORIZONTAL_GRADIENT_ORIENTATION, DIRECTIONAL_ORIENTATION_ANGLE_MAP } from './constants';\nimport { serializeGradient } from './serializer';\nextend([namesPlugin]);\nexport function getLinearGradientRepresentation(gradientAST) {\n return serializeGradient({\n type: 'linear-gradient',\n orientation: HORIZONTAL_GRADIENT_ORIENTATION,\n colorStops: gradientAST.colorStops\n });\n}\nfunction hasUnsupportedLength(item) {\n return item.length === undefined || item.length.type !== '%';\n}\nexport function getGradientAstWithDefault(value) {\n // gradientAST will contain the gradient AST as parsed by gradient-parser npm module.\n // More information of its structure available at https://www.npmjs.com/package/gradient-parser#ast.\n let gradientAST;\n let hasGradient = !!value;\n const valueToParse = value !== null && value !== void 0 ? value : DEFAULT_GRADIENT;\n try {\n gradientAST = gradientParser.parse(valueToParse)[0];\n } catch (error) {\n // eslint-disable-next-line no-console\n console.warn('wp.components.CustomGradientPicker failed to parse the gradient with error', error);\n gradientAST = gradientParser.parse(DEFAULT_GRADIENT)[0];\n hasGradient = false;\n }\n if (!Array.isArray(gradientAST.orientation) && gradientAST.orientation?.type === 'directional') {\n gradientAST.orientation = {\n type: 'angular',\n value: DIRECTIONAL_ORIENTATION_ANGLE_MAP[gradientAST.orientation.value].toString()\n };\n }\n if (gradientAST.colorStops.some(hasUnsupportedLength)) {\n const {\n colorStops\n } = gradientAST;\n const step = 100 / (colorStops.length - 1);\n colorStops.forEach((stop, index) => {\n stop.length = {\n value: `${step * index}`,\n type: '%'\n };\n });\n }\n return {\n gradientAST,\n hasGradient\n };\n}\nexport function getGradientAstWithControlPoints(gradientAST, newControlPoints) {\n return {\n ...gradientAST,\n colorStops: newControlPoints.map(({\n position,\n color\n }) => {\n const {\n r,\n g,\n b,\n a\n } = colord(color).toRgb();\n return {\n length: {\n type: '%',\n value: position?.toString()\n },\n type: a < 1 ? 'rgba' : 'rgb',\n value: a < 1 ? [`${r}`, `${g}`, `${b}`, `${a}`] : [`${r}`, `${g}`, `${b}`]\n };\n })\n };\n}\nexport function getStopCssColor(colorStop) {\n switch (colorStop.type) {\n case 'hex':\n return `#${colorStop.value}`;\n case 'literal':\n return colorStop.value;\n case 'var':\n return `${colorStop.type}(${colorStop.value})`;\n case 'rgb':\n case 'rgba':\n return `${colorStop.type}(${colorStop.value.join(',')})`;\n case 'hsl':\n {\n const [hue, saturation, lightness] = colorStop.value;\n return `hsl(${hue},${saturation}%,${lightness}%)`;\n }\n case 'hsla':\n {\n const [hue, saturation, lightness, alpha] = colorStop.value;\n return `hsla(${hue},${saturation}%,${lightness}%,${alpha})`;\n }\n default:\n // Should be unreachable if passing an AST from gradient-parser.\n // See https://github.com/rafaelcaricio/gradient-parser#ast.\n return 'transparent';\n }\n}"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * External dependencies\n */\nimport gradientParser from 'gradient-parser';\nimport { colord, extend } from 'colord';\nimport namesPlugin from 'colord/plugins/names';\n\n/**\n * Internal dependencies\n */\nimport { DEFAULT_GRADIENT, HORIZONTAL_GRADIENT_ORIENTATION, DIRECTIONAL_ORIENTATION_ANGLE_MAP } from './constants';\nimport { serializeGradient } from './serializer';\nextend([namesPlugin]);\nexport function getLinearGradientRepresentation(gradientAST) {\n return serializeGradient({\n type: 'linear-gradient',\n orientation: HORIZONTAL_GRADIENT_ORIENTATION,\n colorStops: gradientAST.colorStops\n });\n}\nfunction hasUnsupportedLength(item) {\n return item.length === undefined || item.length.type !== '%';\n}\nexport function getGradientAstWithDefault(value) {\n // gradientAST will contain the gradient AST as parsed by gradient-parser npm module.\n // More information of its structure available at https://www.npmjs.com/package/gradient-parser#ast.\n let gradientAST;\n let hasGradient = !!value;\n const valueToParse = value ?? DEFAULT_GRADIENT;\n try {\n gradientAST = gradientParser.parse(valueToParse)[0];\n } catch (error) {\n // eslint-disable-next-line no-console\n console.warn('wp.components.CustomGradientPicker failed to parse the gradient with error', error);\n gradientAST = gradientParser.parse(DEFAULT_GRADIENT)[0];\n hasGradient = false;\n }\n if (!Array.isArray(gradientAST.orientation) && gradientAST.orientation?.type === 'directional') {\n gradientAST.orientation = {\n type: 'angular',\n value: DIRECTIONAL_ORIENTATION_ANGLE_MAP[gradientAST.orientation.value].toString()\n };\n }\n if (gradientAST.colorStops.some(hasUnsupportedLength)) {\n const {\n colorStops\n } = gradientAST;\n const step = 100 / (colorStops.length - 1);\n colorStops.forEach((stop, index) => {\n stop.length = {\n value: `${step * index}`,\n type: '%'\n };\n });\n }\n return {\n gradientAST,\n hasGradient\n };\n}\nexport function getGradientAstWithControlPoints(gradientAST, newControlPoints) {\n return {\n ...gradientAST,\n colorStops: newControlPoints.map(({\n position,\n color\n }) => {\n const {\n r,\n g,\n b,\n a\n } = colord(color).toRgb();\n return {\n length: {\n type: '%',\n value: position?.toString()\n },\n type: a < 1 ? 'rgba' : 'rgb',\n value: a < 1 ? [`${r}`, `${g}`, `${b}`, `${a}`] : [`${r}`, `${g}`, `${b}`]\n };\n })\n };\n}\nexport function getStopCssColor(colorStop) {\n switch (colorStop.type) {\n case 'hex':\n return `#${colorStop.value}`;\n case 'literal':\n return colorStop.value;\n case 'var':\n return `${colorStop.type}(${colorStop.value})`;\n case 'rgb':\n case 'rgba':\n return `${colorStop.type}(${colorStop.value.join(',')})`;\n case 'hsl':\n {\n const [hue, saturation, lightness] = colorStop.value;\n return `hsl(${hue},${saturation}%,${lightness}%)`;\n }\n case 'hsla':\n {\n const [hue, saturation, lightness, alpha] = colorStop.value;\n return `hsla(${hue},${saturation}%,${lightness}%,${alpha})`;\n }\n default:\n // Should be unreachable if passing an AST from gradient-parser.\n // See https://github.com/rafaelcaricio/gradient-parser#ast.\n return 'transparent';\n }\n}"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -34,7 +34,6 @@ function getDescribedBy(currentName, describedBy) {
34
34
  return sprintf(__("Currently selected: %s"), currentName);
35
35
  }
36
36
  function CustomSelectControl(props) {
37
- var _options$map$find;
38
37
  const {
39
38
  __next40pxDefaultSize = false,
40
39
  __shouldNotWarnDeprecated36pxSize,
@@ -109,9 +108,9 @@ function CustomSelectControl(props) {
109
108
  }, key);
110
109
  });
111
110
  const currentValue = Ariakit.useStoreState(store, "value");
112
- const selectedOption = (_options$map$find = options?.map(applyOptionDeprecations)?.find(({
111
+ const selectedOption = options?.map(applyOptionDeprecations)?.find(({
113
112
  key
114
- }) => currentValue === key)) !== null && _options$map$find !== void 0 ? _options$map$find : options[0];
113
+ }) => currentValue === key) ?? options[0];
115
114
  const renderSelectedValue = () => {
116
115
  if (!showSelectedHint || !selectedOption.hint) {
117
116
  return selectedOption?.name;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/custom-select-control/index.tsx"],
4
- "sourcesContent": ["/**\n * External dependencies\n */\nimport * as Ariakit from '@ariakit/react';\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useInstanceId } from '@wordpress/compose';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport _CustomSelect from '../custom-select-control-v2/custom-select';\nimport CustomSelectItem from '../custom-select-control-v2/item';\nimport * as Styled from '../custom-select-control-v2/styles';\nimport { VisuallyHidden } from '../visually-hidden';\nimport { maybeWarnDeprecated36pxSize } from '../utils/deprecated-36px-size';\nimport { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nfunction useDeprecatedProps({\n __experimentalShowSelectedHint,\n ...otherProps\n}) {\n return {\n showSelectedHint: __experimentalShowSelectedHint,\n ...otherProps\n };\n}\n\n// The removal of `__experimentalHint` in favour of `hint` doesn't happen in\n// the `useDeprecatedProps` hook in order not to break consumers that rely\n// on object identity (see https://github.com/WordPress/gutenberg/pull/63248#discussion_r1672213131)\nfunction applyOptionDeprecations({\n __experimentalHint,\n ...rest\n}) {\n return {\n hint: __experimentalHint,\n ...rest\n };\n}\nfunction getDescribedBy(currentName, describedBy) {\n if (describedBy) {\n return describedBy;\n }\n\n // translators: %s: The selected option.\n return sprintf(__('Currently selected: %s'), currentName);\n}\nfunction CustomSelectControl(props) {\n var _options$map$find;\n const {\n __next40pxDefaultSize = false,\n __shouldNotWarnDeprecated36pxSize,\n describedBy,\n options,\n onChange,\n size = 'default',\n value,\n className: classNameProp,\n showSelectedHint = false,\n ...restProps\n } = useDeprecatedProps(props);\n maybeWarnDeprecated36pxSize({\n componentName: 'CustomSelectControl',\n __next40pxDefaultSize,\n size,\n __shouldNotWarnDeprecated36pxSize\n });\n const descriptionId = useInstanceId(CustomSelectControl, 'custom-select-control__description');\n\n // Forward props + store from v2 implementation\n const store = Ariakit.useSelectStore({\n async setValue(nextValue) {\n const nextOption = options.find(item => item.key === nextValue);\n if (!onChange || !nextOption) {\n return;\n }\n\n // Executes the logic in a microtask after the popup is closed.\n // This is simply to ensure the isOpen state matches the one from the\n // previous legacy implementation.\n await Promise.resolve();\n const state = store.getState();\n const changeObject = {\n highlightedIndex: state.renderedItems.findIndex(item => item.value === nextValue),\n inputValue: '',\n isOpen: state.open,\n selectedItem: nextOption,\n type: ''\n };\n onChange(changeObject);\n },\n value: value?.key,\n // Setting the first option as a default value when no value is provided\n // is already done natively by the underlying Ariakit component,\n // but doing this explicitly avoids the `onChange` callback from firing\n // on initial render, thus making this implementation closer to the v1.\n defaultValue: options[0]?.key\n });\n const children = options.map(applyOptionDeprecations).map(({\n name,\n key,\n hint,\n style,\n className\n }) => {\n const withHint = /*#__PURE__*/_jsxs(Styled.WithHintItemWrapper, {\n children: [/*#__PURE__*/_jsx(\"span\", {\n children: name\n }), /*#__PURE__*/_jsx(Styled.WithHintItemHint, {\n // Keeping the classname for legacy reasons\n className: \"components-custom-select-control__item-hint\",\n children: hint\n })]\n });\n return /*#__PURE__*/_jsx(CustomSelectItem, {\n value: key,\n children: hint ? withHint : name,\n style: style,\n className: clsx(className,\n // Keeping the classnames for legacy reasons\n 'components-custom-select-control__item', {\n 'has-hint': hint\n })\n }, key);\n });\n const currentValue = Ariakit.useStoreState(store, 'value');\n const selectedOption = (_options$map$find = options?.map(applyOptionDeprecations)?.find(({\n key\n }) => currentValue === key)) !== null && _options$map$find !== void 0 ? _options$map$find : options[0];\n const renderSelectedValue = () => {\n if (!showSelectedHint || !selectedOption.hint) {\n return selectedOption?.name;\n }\n return /*#__PURE__*/_jsxs(Styled.SelectedExperimentalHintWrapper, {\n children: [selectedOption?.name, /*#__PURE__*/_jsx(Styled.SelectedExperimentalHintItem, {\n // Keeping the classname for legacy reasons\n className: \"components-custom-select-control__hint\",\n children: selectedOption?.hint\n })]\n });\n };\n const translatedSize = (() => {\n if (__next40pxDefaultSize && size === 'default' || size === '__unstable-large') {\n return 'default';\n }\n if (!__next40pxDefaultSize && size === 'default') {\n return 'compact';\n }\n return size;\n })();\n return /*#__PURE__*/_jsxs(_Fragment, {\n children: [/*#__PURE__*/_jsx(_CustomSelect, {\n \"aria-describedby\": descriptionId,\n renderSelectedValue: renderSelectedValue,\n size: translatedSize,\n store: store,\n className: clsx(\n // Keeping the classname for legacy reasons\n 'components-custom-select-control', classNameProp),\n isLegacy: true,\n ...restProps,\n children: children\n }), /*#__PURE__*/_jsx(VisuallyHidden, {\n children: /*#__PURE__*/_jsx(\"span\", {\n id: descriptionId,\n children: getDescribedBy(selectedOption?.name, describedBy)\n })\n })]\n });\n}\nexport default CustomSelectControl;"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * External dependencies\n */\nimport * as Ariakit from '@ariakit/react';\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useInstanceId } from '@wordpress/compose';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport _CustomSelect from '../custom-select-control-v2/custom-select';\nimport CustomSelectItem from '../custom-select-control-v2/item';\nimport * as Styled from '../custom-select-control-v2/styles';\nimport { VisuallyHidden } from '../visually-hidden';\nimport { maybeWarnDeprecated36pxSize } from '../utils/deprecated-36px-size';\nimport { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nfunction useDeprecatedProps({\n __experimentalShowSelectedHint,\n ...otherProps\n}) {\n return {\n showSelectedHint: __experimentalShowSelectedHint,\n ...otherProps\n };\n}\n\n// The removal of `__experimentalHint` in favour of `hint` doesn't happen in\n// the `useDeprecatedProps` hook in order not to break consumers that rely\n// on object identity (see https://github.com/WordPress/gutenberg/pull/63248#discussion_r1672213131)\nfunction applyOptionDeprecations({\n __experimentalHint,\n ...rest\n}) {\n return {\n hint: __experimentalHint,\n ...rest\n };\n}\nfunction getDescribedBy(currentName, describedBy) {\n if (describedBy) {\n return describedBy;\n }\n\n // translators: %s: The selected option.\n return sprintf(__('Currently selected: %s'), currentName);\n}\nfunction CustomSelectControl(props) {\n const {\n __next40pxDefaultSize = false,\n __shouldNotWarnDeprecated36pxSize,\n describedBy,\n options,\n onChange,\n size = 'default',\n value,\n className: classNameProp,\n showSelectedHint = false,\n ...restProps\n } = useDeprecatedProps(props);\n maybeWarnDeprecated36pxSize({\n componentName: 'CustomSelectControl',\n __next40pxDefaultSize,\n size,\n __shouldNotWarnDeprecated36pxSize\n });\n const descriptionId = useInstanceId(CustomSelectControl, 'custom-select-control__description');\n\n // Forward props + store from v2 implementation\n const store = Ariakit.useSelectStore({\n async setValue(nextValue) {\n const nextOption = options.find(item => item.key === nextValue);\n if (!onChange || !nextOption) {\n return;\n }\n\n // Executes the logic in a microtask after the popup is closed.\n // This is simply to ensure the isOpen state matches the one from the\n // previous legacy implementation.\n await Promise.resolve();\n const state = store.getState();\n const changeObject = {\n highlightedIndex: state.renderedItems.findIndex(item => item.value === nextValue),\n inputValue: '',\n isOpen: state.open,\n selectedItem: nextOption,\n type: ''\n };\n onChange(changeObject);\n },\n value: value?.key,\n // Setting the first option as a default value when no value is provided\n // is already done natively by the underlying Ariakit component,\n // but doing this explicitly avoids the `onChange` callback from firing\n // on initial render, thus making this implementation closer to the v1.\n defaultValue: options[0]?.key\n });\n const children = options.map(applyOptionDeprecations).map(({\n name,\n key,\n hint,\n style,\n className\n }) => {\n const withHint = /*#__PURE__*/_jsxs(Styled.WithHintItemWrapper, {\n children: [/*#__PURE__*/_jsx(\"span\", {\n children: name\n }), /*#__PURE__*/_jsx(Styled.WithHintItemHint, {\n // Keeping the classname for legacy reasons\n className: \"components-custom-select-control__item-hint\",\n children: hint\n })]\n });\n return /*#__PURE__*/_jsx(CustomSelectItem, {\n value: key,\n children: hint ? withHint : name,\n style: style,\n className: clsx(className,\n // Keeping the classnames for legacy reasons\n 'components-custom-select-control__item', {\n 'has-hint': hint\n })\n }, key);\n });\n const currentValue = Ariakit.useStoreState(store, 'value');\n const selectedOption = options?.map(applyOptionDeprecations)?.find(({\n key\n }) => currentValue === key) ?? options[0];\n const renderSelectedValue = () => {\n if (!showSelectedHint || !selectedOption.hint) {\n return selectedOption?.name;\n }\n return /*#__PURE__*/_jsxs(Styled.SelectedExperimentalHintWrapper, {\n children: [selectedOption?.name, /*#__PURE__*/_jsx(Styled.SelectedExperimentalHintItem, {\n // Keeping the classname for legacy reasons\n className: \"components-custom-select-control__hint\",\n children: selectedOption?.hint\n })]\n });\n };\n const translatedSize = (() => {\n if (__next40pxDefaultSize && size === 'default' || size === '__unstable-large') {\n return 'default';\n }\n if (!__next40pxDefaultSize && size === 'default') {\n return 'compact';\n }\n return size;\n })();\n return /*#__PURE__*/_jsxs(_Fragment, {\n children: [/*#__PURE__*/_jsx(_CustomSelect, {\n \"aria-describedby\": descriptionId,\n renderSelectedValue: renderSelectedValue,\n size: translatedSize,\n store: store,\n className: clsx(\n // Keeping the classname for legacy reasons\n 'components-custom-select-control', classNameProp),\n isLegacy: true,\n ...restProps,\n children: children\n }), /*#__PURE__*/_jsx(VisuallyHidden, {\n children: /*#__PURE__*/_jsx(\"span\", {\n id: descriptionId,\n children: getDescribedBy(selectedOption?.name, describedBy)\n })\n })]\n });\n}\nexport default CustomSelectControl;"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -33,7 +33,7 @@ var CustomSelectButton = ({
33
33
  const {
34
34
  value: currentValue
35
35
  } = Ariakit.useStoreState(store);
36
- const computedRenderSelectedValue = useMemo(() => renderSelectedValue !== null && renderSelectedValue !== void 0 ? renderSelectedValue : defaultRenderSelectedValue, [renderSelectedValue]);
36
+ const computedRenderSelectedValue = useMemo(() => renderSelectedValue ?? defaultRenderSelectedValue, [renderSelectedValue]);
37
37
  return /* @__PURE__ */ _jsx(Styled.Select, {
38
38
  ...restProps,
39
39
  size,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/custom-select-control-v2/custom-select.tsx"],
4
- "sourcesContent": ["/**\n * External dependencies\n */\nimport * as Ariakit from '@ariakit/react';\n\n/**\n * WordPress dependencies\n */\nimport { createContext, useCallback, useMemo } from '@wordpress/element';\nimport { __, _n, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { VisuallyHidden } from '../visually-hidden';\nimport * as Styled from './styles';\nimport InputBase from '../input-control/input-base';\nimport SelectControlChevronDown from '../select-control/chevron-down';\nimport BaseControl from '../base-control';\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nexport const CustomSelectContext = createContext(undefined);\nCustomSelectContext.displayName = 'CustomSelectContext';\nfunction defaultRenderSelectedValue(value) {\n const isValueEmpty = Array.isArray(value) ? value.length === 0 : value === undefined || value === null;\n if (isValueEmpty) {\n return __('Select an item');\n }\n if (Array.isArray(value)) {\n return value.length === 1 ? value[0] : sprintf(\n // translators: %d: number of items selected (it will always be 2 or more items)\n _n('%d item selected', '%d items selected', value.length), value.length);\n }\n return value;\n}\nconst CustomSelectButton = ({\n renderSelectedValue,\n size = 'default',\n store,\n ...restProps\n}) => {\n const {\n value: currentValue\n } = Ariakit.useStoreState(store);\n const computedRenderSelectedValue = useMemo(() => renderSelectedValue !== null && renderSelectedValue !== void 0 ? renderSelectedValue : defaultRenderSelectedValue, [renderSelectedValue]);\n return /*#__PURE__*/_jsx(Styled.Select, {\n ...restProps,\n size: size,\n hasCustomRenderProp: !!renderSelectedValue,\n store: store,\n children: computedRenderSelectedValue(currentValue)\n });\n};\nfunction _CustomSelect(props) {\n const {\n children,\n hideLabelFromVision = false,\n label,\n size,\n store,\n className,\n isLegacy = false,\n ...restProps\n } = props;\n const onSelectPopoverKeyDown = useCallback(e => {\n if (isLegacy) {\n e.stopPropagation();\n }\n }, [isLegacy]);\n const contextValue = useMemo(() => ({\n store,\n size\n }), [store, size]);\n return (\n /*#__PURE__*/\n // Where should `restProps` be forwarded to?\n _jsxs(\"div\", {\n className: className,\n children: [/*#__PURE__*/_jsx(Ariakit.SelectLabel, {\n store: store,\n render: hideLabelFromVision ?\n /*#__PURE__*/\n // @ts-expect-error `children` are passed via the render prop\n _jsx(VisuallyHidden, {}) :\n /*#__PURE__*/\n // @ts-expect-error `children` are passed via the render prop\n _jsx(BaseControl.VisualLabel, {\n as: \"div\"\n }),\n children: label\n }), /*#__PURE__*/_jsxs(InputBase, {\n __next40pxDefaultSize: true,\n size: size,\n suffix: /*#__PURE__*/_jsx(SelectControlChevronDown, {}),\n children: [/*#__PURE__*/_jsx(CustomSelectButton, {\n ...restProps,\n size: size,\n store: store\n // Match legacy behavior (move selection rather than open the popover)\n ,\n showOnKeyDown: !isLegacy\n }), /*#__PURE__*/_jsx(Styled.SelectPopover, {\n gutter: 12,\n store: store,\n sameWidth: true,\n slide: false,\n onKeyDown: onSelectPopoverKeyDown\n // Match legacy behavior\n ,\n flip: !isLegacy,\n children: /*#__PURE__*/_jsx(CustomSelectContext.Provider, {\n value: contextValue,\n children: children\n })\n })]\n })]\n })\n );\n}\nexport default _CustomSelect;"],
5
- "mappings": ";AAGA,YAAY,aAAa;AAKzB,SAAS,eAAe,aAAa,eAAe;AACpD,SAAS,IAAI,IAAI,eAAe;AAKhC,SAAS,sBAAsB;AAC/B,YAAY,YAAY;AACxB,OAAO,eAAe;AACtB,OAAO,8BAA8B;AACrC,OAAO,iBAAiB;AACxB,SAAS,OAAO,MAAM,QAAQ,aAAa;AACpC,IAAM,sBAAsB,cAAc,MAAS;AAC1D,oBAAoB,cAAc;AAClC,SAAS,2BAA2B,OAAO;AACzC,QAAM,eAAe,MAAM,QAAQ,KAAK,IAAI,MAAM,WAAW,IAAI,UAAU,UAAa,UAAU;AAClG,MAAI,cAAc;AAChB,WAAO,GAAG,gBAAgB;AAAA,EAC5B;AACA,MAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,WAAO,MAAM,WAAW,IAAI,MAAM,CAAC,IAAI;AAAA;AAAA,MAEvC,GAAG,oBAAoB,qBAAqB,MAAM,MAAM;AAAA,MAAG,MAAM;AAAA,IAAM;AAAA,EACzE;AACA,SAAO;AACT;AACA,IAAM,qBAAqB,CAAC;AAAA,EAC1B;AAAA,EACA,OAAO;AAAA,EACP;AAAA,EACA,GAAG;AACL,MAAM;AACJ,QAAM;AAAA,IACJ,OAAO;AAAA,EACT,IAAY,sBAAc,KAAK;AAC/B,QAAM,8BAA8B,QAAQ,MAAM,wBAAwB,QAAQ,wBAAwB,SAAS,sBAAsB,4BAA4B,CAAC,mBAAmB,CAAC;AAC1L,SAAoB,qBAAY,eAAQ;AAAA,IACtC,GAAG;AAAA,IACH;AAAA,IACA,qBAAqB,CAAC,CAAC;AAAA,IACvB;AAAA,IACA,UAAU,4BAA4B,YAAY;AAAA,EACpD,CAAC;AACH;AACA,SAAS,cAAc,OAAO;AAC5B,QAAM;AAAA,IACJ;AAAA,IACA,sBAAsB;AAAA,IACtB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX,GAAG;AAAA,EACL,IAAI;AACJ,QAAM,yBAAyB,YAAY,OAAK;AAC9C,QAAI,UAAU;AACZ,QAAE,gBAAgB;AAAA,IACpB;AAAA,EACF,GAAG,CAAC,QAAQ,CAAC;AACb,QAAM,eAAe,QAAQ,OAAO;AAAA,IAClC;AAAA,IACA;AAAA,EACF,IAAI,CAAC,OAAO,IAAI,CAAC;AACjB;AAAA;AAAA,IAGE,sBAAM,OAAO;AAAA,MACX;AAAA,MACA,UAAU,CAAc,qBAAa,qBAAa;AAAA,QAChD;AAAA,QACA,QAAQ;AAAA;AAAA,UAGR,qBAAK,gBAAgB,CAAC,CAAC;AAAA;AAAA;AAAA,UAGvB,qBAAK,YAAY,aAAa;AAAA,YAC5B,IAAI;AAAA,UACN,CAAC;AAAA;AAAA,QACD,UAAU;AAAA,MACZ,CAAC,GAAgB,sBAAM,WAAW;AAAA,QAChC,uBAAuB;AAAA,QACvB;AAAA,QACA,QAAqB,qBAAK,0BAA0B,CAAC,CAAC;AAAA,QACtD,UAAU,CAAc,qBAAK,oBAAoB;AAAA,UAC/C,GAAG;AAAA,UACH;AAAA,UACA;AAAA,UAGA,eAAe,CAAC;AAAA,QAClB,CAAC,GAAgB,qBAAY,sBAAe;AAAA,UAC1C,QAAQ;AAAA,UACR;AAAA,UACA,WAAW;AAAA,UACX,OAAO;AAAA,UACP,WAAW;AAAA,UAGX,MAAM,CAAC;AAAA,UACP,UAAuB,qBAAK,oBAAoB,UAAU;AAAA,YACxD,OAAO;AAAA,YACP;AAAA,UACF,CAAC;AAAA,QACH,CAAC,CAAC;AAAA,MACJ,CAAC,CAAC;AAAA,IACJ,CAAC;AAAA;AAEL;AACA,IAAO,wBAAQ;",
4
+ "sourcesContent": ["/**\n * External dependencies\n */\nimport * as Ariakit from '@ariakit/react';\n\n/**\n * WordPress dependencies\n */\nimport { createContext, useCallback, useMemo } from '@wordpress/element';\nimport { __, _n, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { VisuallyHidden } from '../visually-hidden';\nimport * as Styled from './styles';\nimport InputBase from '../input-control/input-base';\nimport SelectControlChevronDown from '../select-control/chevron-down';\nimport BaseControl from '../base-control';\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nexport const CustomSelectContext = createContext(undefined);\nCustomSelectContext.displayName = 'CustomSelectContext';\nfunction defaultRenderSelectedValue(value) {\n const isValueEmpty = Array.isArray(value) ? value.length === 0 : value === undefined || value === null;\n if (isValueEmpty) {\n return __('Select an item');\n }\n if (Array.isArray(value)) {\n return value.length === 1 ? value[0] : sprintf(\n // translators: %d: number of items selected (it will always be 2 or more items)\n _n('%d item selected', '%d items selected', value.length), value.length);\n }\n return value;\n}\nconst CustomSelectButton = ({\n renderSelectedValue,\n size = 'default',\n store,\n ...restProps\n}) => {\n const {\n value: currentValue\n } = Ariakit.useStoreState(store);\n const computedRenderSelectedValue = useMemo(() => renderSelectedValue ?? defaultRenderSelectedValue, [renderSelectedValue]);\n return /*#__PURE__*/_jsx(Styled.Select, {\n ...restProps,\n size: size,\n hasCustomRenderProp: !!renderSelectedValue,\n store: store,\n children: computedRenderSelectedValue(currentValue)\n });\n};\nfunction _CustomSelect(props) {\n const {\n children,\n hideLabelFromVision = false,\n label,\n size,\n store,\n className,\n isLegacy = false,\n ...restProps\n } = props;\n const onSelectPopoverKeyDown = useCallback(e => {\n if (isLegacy) {\n e.stopPropagation();\n }\n }, [isLegacy]);\n const contextValue = useMemo(() => ({\n store,\n size\n }), [store, size]);\n return (\n /*#__PURE__*/\n // Where should `restProps` be forwarded to?\n _jsxs(\"div\", {\n className: className,\n children: [/*#__PURE__*/_jsx(Ariakit.SelectLabel, {\n store: store,\n render: hideLabelFromVision ?\n /*#__PURE__*/\n // @ts-expect-error `children` are passed via the render prop\n _jsx(VisuallyHidden, {}) :\n /*#__PURE__*/\n // @ts-expect-error `children` are passed via the render prop\n _jsx(BaseControl.VisualLabel, {\n as: \"div\"\n }),\n children: label\n }), /*#__PURE__*/_jsxs(InputBase, {\n __next40pxDefaultSize: true,\n size: size,\n suffix: /*#__PURE__*/_jsx(SelectControlChevronDown, {}),\n children: [/*#__PURE__*/_jsx(CustomSelectButton, {\n ...restProps,\n size: size,\n store: store\n // Match legacy behavior (move selection rather than open the popover)\n ,\n showOnKeyDown: !isLegacy\n }), /*#__PURE__*/_jsx(Styled.SelectPopover, {\n gutter: 12,\n store: store,\n sameWidth: true,\n slide: false,\n onKeyDown: onSelectPopoverKeyDown\n // Match legacy behavior\n ,\n flip: !isLegacy,\n children: /*#__PURE__*/_jsx(CustomSelectContext.Provider, {\n value: contextValue,\n children: children\n })\n })]\n })]\n })\n );\n}\nexport default _CustomSelect;"],
5
+ "mappings": ";AAGA,YAAY,aAAa;AAKzB,SAAS,eAAe,aAAa,eAAe;AACpD,SAAS,IAAI,IAAI,eAAe;AAKhC,SAAS,sBAAsB;AAC/B,YAAY,YAAY;AACxB,OAAO,eAAe;AACtB,OAAO,8BAA8B;AACrC,OAAO,iBAAiB;AACxB,SAAS,OAAO,MAAM,QAAQ,aAAa;AACpC,IAAM,sBAAsB,cAAc,MAAS;AAC1D,oBAAoB,cAAc;AAClC,SAAS,2BAA2B,OAAO;AACzC,QAAM,eAAe,MAAM,QAAQ,KAAK,IAAI,MAAM,WAAW,IAAI,UAAU,UAAa,UAAU;AAClG,MAAI,cAAc;AAChB,WAAO,GAAG,gBAAgB;AAAA,EAC5B;AACA,MAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,WAAO,MAAM,WAAW,IAAI,MAAM,CAAC,IAAI;AAAA;AAAA,MAEvC,GAAG,oBAAoB,qBAAqB,MAAM,MAAM;AAAA,MAAG,MAAM;AAAA,IAAM;AAAA,EACzE;AACA,SAAO;AACT;AACA,IAAM,qBAAqB,CAAC;AAAA,EAC1B;AAAA,EACA,OAAO;AAAA,EACP;AAAA,EACA,GAAG;AACL,MAAM;AACJ,QAAM;AAAA,IACJ,OAAO;AAAA,EACT,IAAY,sBAAc,KAAK;AAC/B,QAAM,8BAA8B,QAAQ,MAAM,uBAAuB,4BAA4B,CAAC,mBAAmB,CAAC;AAC1H,SAAoB,qBAAY,eAAQ;AAAA,IACtC,GAAG;AAAA,IACH;AAAA,IACA,qBAAqB,CAAC,CAAC;AAAA,IACvB;AAAA,IACA,UAAU,4BAA4B,YAAY;AAAA,EACpD,CAAC;AACH;AACA,SAAS,cAAc,OAAO;AAC5B,QAAM;AAAA,IACJ;AAAA,IACA,sBAAsB;AAAA,IACtB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX,GAAG;AAAA,EACL,IAAI;AACJ,QAAM,yBAAyB,YAAY,OAAK;AAC9C,QAAI,UAAU;AACZ,QAAE,gBAAgB;AAAA,IACpB;AAAA,EACF,GAAG,CAAC,QAAQ,CAAC;AACb,QAAM,eAAe,QAAQ,OAAO;AAAA,IAClC;AAAA,IACA;AAAA,EACF,IAAI,CAAC,OAAO,IAAI,CAAC;AACjB;AAAA;AAAA,IAGE,sBAAM,OAAO;AAAA,MACX;AAAA,MACA,UAAU,CAAc,qBAAa,qBAAa;AAAA,QAChD;AAAA,QACA,QAAQ;AAAA;AAAA,UAGR,qBAAK,gBAAgB,CAAC,CAAC;AAAA;AAAA;AAAA,UAGvB,qBAAK,YAAY,aAAa;AAAA,YAC5B,IAAI;AAAA,UACN,CAAC;AAAA;AAAA,QACD,UAAU;AAAA,MACZ,CAAC,GAAgB,sBAAM,WAAW;AAAA,QAChC,uBAAuB;AAAA,QACvB;AAAA,QACA,QAAqB,qBAAK,0BAA0B,CAAC,CAAC;AAAA,QACtD,UAAU,CAAc,qBAAK,oBAAoB;AAAA,UAC/C,GAAG;AAAA,UACH;AAAA,UACA;AAAA,UAGA,eAAe,CAAC;AAAA,QAClB,CAAC,GAAgB,qBAAY,sBAAe;AAAA,UAC1C,QAAQ;AAAA,UACR;AAAA,UACA,WAAW;AAAA,UACX,OAAO;AAAA,UACP,WAAW;AAAA,UAGX,MAAM,CAAC;AAAA,UACP,UAAuB,qBAAK,oBAAoB,UAAU;AAAA,YACxD,OAAO;AAAA,YACP;AAAA,UACF,CAAC;AAAA,QACH,CAAC,CAAC;AAAA,MACJ,CAAC,CAAC;AAAA,IACJ,CAAC;AAAA;AAEL;AACA,IAAO,wBAAQ;",
6
6
  "names": []
7
7
  }
@@ -8,13 +8,12 @@ function CustomSelectItem({
8
8
  children,
9
9
  ...props
10
10
  }) {
11
- var _customSelectContext$;
12
11
  const customSelectContext = useContext(CustomSelectContext);
13
12
  return /* @__PURE__ */ _jsxs(Styled.SelectItem, {
14
13
  store: customSelectContext?.store,
15
- size: (_customSelectContext$ = customSelectContext?.size) !== null && _customSelectContext$ !== void 0 ? _customSelectContext$ : "default",
14
+ size: customSelectContext?.size ?? "default",
16
15
  ...props,
17
- children: [children !== null && children !== void 0 ? children : props.value, /* @__PURE__ */ _jsx(Styled.SelectedItemCheck, {
16
+ children: [children ?? props.value, /* @__PURE__ */ _jsx(Styled.SelectedItemCheck, {
18
17
  children: /* @__PURE__ */ _jsx(Icon, {
19
18
  icon: check
20
19
  })
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/custom-select-control-v2/item.tsx"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useContext } from '@wordpress/element';\nimport { Icon, check } from '@wordpress/icons';\n/**\n * Internal dependencies\n */\n\nimport * as Styled from './styles';\nimport { CustomSelectContext } from './custom-select';\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nexport function CustomSelectItem({\n children,\n ...props\n}) {\n var _customSelectContext$;\n const customSelectContext = useContext(CustomSelectContext);\n return /*#__PURE__*/_jsxs(Styled.SelectItem, {\n store: customSelectContext?.store,\n size: (_customSelectContext$ = customSelectContext?.size) !== null && _customSelectContext$ !== void 0 ? _customSelectContext$ : 'default',\n ...props,\n children: [children !== null && children !== void 0 ? children : props.value, /*#__PURE__*/_jsx(Styled.SelectedItemCheck, {\n children: /*#__PURE__*/_jsx(Icon, {\n icon: check\n })\n })]\n });\n}\nCustomSelectItem.displayName = 'CustomSelectControlV2.Item';\nexport default CustomSelectItem;"],
5
- "mappings": ";AAGA,SAAS,kBAAkB;AAC3B,SAAS,MAAM,aAAa;AAK5B,YAAY,YAAY;AACxB,SAAS,2BAA2B;AACpC,SAAS,OAAO,MAAM,QAAQ,aAAa;AACpC,SAAS,iBAAiB;AAAA,EAC/B;AAAA,EACA,GAAG;AACL,GAAG;AACD,MAAI;AACJ,QAAM,sBAAsB,WAAW,mBAAmB;AAC1D,SAAoB,sBAAa,mBAAY;AAAA,IAC3C,OAAO,qBAAqB;AAAA,IAC5B,OAAO,wBAAwB,qBAAqB,UAAU,QAAQ,0BAA0B,SAAS,wBAAwB;AAAA,IACjI,GAAG;AAAA,IACH,UAAU,CAAC,aAAa,QAAQ,aAAa,SAAS,WAAW,MAAM,OAAoB,qBAAY,0BAAmB;AAAA,MACxH,UAAuB,qBAAK,MAAM;AAAA,QAChC,MAAM;AAAA,MACR,CAAC;AAAA,IACH,CAAC,CAAC;AAAA,EACJ,CAAC;AACH;AACA,iBAAiB,cAAc;AAC/B,IAAO,eAAQ;",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useContext } from '@wordpress/element';\nimport { Icon, check } from '@wordpress/icons';\n/**\n * Internal dependencies\n */\n\nimport * as Styled from './styles';\nimport { CustomSelectContext } from './custom-select';\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nexport function CustomSelectItem({\n children,\n ...props\n}) {\n const customSelectContext = useContext(CustomSelectContext);\n return /*#__PURE__*/_jsxs(Styled.SelectItem, {\n store: customSelectContext?.store,\n size: customSelectContext?.size ?? 'default',\n ...props,\n children: [children ?? props.value, /*#__PURE__*/_jsx(Styled.SelectedItemCheck, {\n children: /*#__PURE__*/_jsx(Icon, {\n icon: check\n })\n })]\n });\n}\nCustomSelectItem.displayName = 'CustomSelectControlV2.Item';\nexport default CustomSelectItem;"],
5
+ "mappings": ";AAGA,SAAS,kBAAkB;AAC3B,SAAS,MAAM,aAAa;AAK5B,YAAY,YAAY;AACxB,SAAS,2BAA2B;AACpC,SAAS,OAAO,MAAM,QAAQ,aAAa;AACpC,SAAS,iBAAiB;AAAA,EAC/B;AAAA,EACA,GAAG;AACL,GAAG;AACD,QAAM,sBAAsB,WAAW,mBAAmB;AAC1D,SAAoB,sBAAa,mBAAY;AAAA,IAC3C,OAAO,qBAAqB;AAAA,IAC5B,MAAM,qBAAqB,QAAQ;AAAA,IACnC,GAAG;AAAA,IACH,UAAU,CAAC,YAAY,MAAM,OAAoB,qBAAY,0BAAmB;AAAA,MAC9E,UAAuB,qBAAK,MAAM;AAAA,QAChC,MAAM;AAAA,MACR,CAAC;AAAA,IACH,CAAC,CAAC;AAAA,EACJ,CAAC;AACH;AACA,iBAAiB,cAAc;AAC/B,IAAO,eAAQ;",
6
6
  "names": []
7
7
  }
@@ -17,7 +17,7 @@ function DatePicker({
17
17
  onMonthPreviewed,
18
18
  startOfWeek: weekStartsOn = 0
19
19
  }) {
20
- const date = inputToDate(currentDate !== null && currentDate !== void 0 ? currentDate : /* @__PURE__ */ new Date());
20
+ const date = inputToDate(currentDate ?? /* @__PURE__ */ new Date());
21
21
  const {
22
22
  calendar,
23
23
  viewing,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/date-time/date/index.tsx"],
4
- "sourcesContent": ["/**\n * External dependencies\n */\nimport { isSameDay, subMonths, addMonths, isEqual, addDays, subDays, subWeeks, addWeeks, isSameMonth } from 'date-fns';\n/**\n * WordPress dependencies\n */\nimport { __, _n, sprintf, isRTL } from '@wordpress/i18n';\nimport { arrowLeft, arrowRight } from '@wordpress/icons';\nimport { dateI18n, date as formatDate, getSettings } from '@wordpress/date';\nimport { useState, useRef, useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { useLilius } from './use-lilius';\nimport { Wrapper, Navigator, ViewPreviousMonthButton, ViewNextMonthButton, NavigatorHeading, Calendar, DayOfWeek, DayButton } from './styles';\nimport { inputToDate, setInConfiguredTimezone, startOfDayInConfiguredTimezone } from '../utils';\nimport { TIMEZONELESS_FORMAT } from '../constants';\n\n/**\n * DatePicker is a React component that renders a calendar for date selection.\n *\n * ```jsx\n * import { DatePicker } from '@wordpress/components';\n * import { useState } from '@wordpress/element';\n *\n * const MyDatePicker = () => {\n * const [ date, setDate ] = useState( new Date() );\n *\n * return (\n * <DatePicker\n * currentDate={ date }\n * onChange={ ( newDate ) => setDate( newDate ) }\n * />\n * );\n * };\n * ```\n */\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nexport function DatePicker({\n currentDate,\n onChange,\n events = [],\n isInvalidDate,\n onMonthPreviewed,\n startOfWeek: weekStartsOn = 0\n}) {\n const date = inputToDate(currentDate !== null && currentDate !== void 0 ? currentDate : new Date());\n const {\n calendar,\n viewing,\n setSelected,\n setViewing,\n isSelected,\n viewPreviousMonth,\n viewNextMonth\n } = useLilius({\n selected: [startOfDayInConfiguredTimezone(date)],\n viewing: startOfDayInConfiguredTimezone(date),\n weekStartsOn\n });\n\n // Used to implement a roving tab index. Tracks the day that receives focus\n // when the user tabs into the calendar.\n const [focusable, setFocusable] = useState(startOfDayInConfiguredTimezone(date));\n\n // Allows us to only programmatically focus() a day when focus was already\n // within the calendar. This stops us stealing focus from e.g. a TimePicker\n // input.\n const [isFocusWithinCalendar, setIsFocusWithinCalendar] = useState(false);\n\n // Update internal state when currentDate prop changes.\n const [prevCurrentDate, setPrevCurrentDate] = useState(currentDate);\n if (currentDate !== prevCurrentDate) {\n setPrevCurrentDate(currentDate);\n setSelected([startOfDayInConfiguredTimezone(date)]);\n setViewing(startOfDayInConfiguredTimezone(date));\n setFocusable(startOfDayInConfiguredTimezone(date));\n }\n return /*#__PURE__*/_jsxs(Wrapper, {\n className: \"components-datetime__date\",\n role: \"application\",\n \"aria-label\": __('Calendar'),\n children: [/*#__PURE__*/_jsxs(Navigator, {\n children: [/*#__PURE__*/_jsx(ViewPreviousMonthButton, {\n icon: isRTL() ? arrowRight : arrowLeft,\n variant: \"tertiary\",\n \"aria-label\": __('View previous month'),\n onClick: () => {\n viewPreviousMonth();\n setFocusable(subMonths(focusable, 1));\n const prevMonth = subMonths(viewing, 1);\n onMonthPreviewed?.(dateI18n(TIMEZONELESS_FORMAT, prevMonth, -prevMonth.getTimezoneOffset()));\n },\n size: \"compact\"\n }), /*#__PURE__*/_jsxs(NavigatorHeading, {\n level: 3,\n children: [/*#__PURE__*/_jsx(\"strong\", {\n children: dateI18n('F', viewing, -viewing.getTimezoneOffset())\n }), ' ', dateI18n('Y', viewing, -viewing.getTimezoneOffset())]\n }), /*#__PURE__*/_jsx(ViewNextMonthButton, {\n icon: isRTL() ? arrowLeft : arrowRight,\n variant: \"tertiary\",\n \"aria-label\": __('View next month'),\n onClick: () => {\n viewNextMonth();\n setFocusable(addMonths(focusable, 1));\n const nextMonth = addMonths(viewing, 1);\n onMonthPreviewed?.(dateI18n(TIMEZONELESS_FORMAT, nextMonth, -nextMonth.getTimezoneOffset()));\n },\n size: \"compact\"\n })]\n }), /*#__PURE__*/_jsxs(Calendar, {\n onFocus: () => setIsFocusWithinCalendar(true),\n onBlur: () => setIsFocusWithinCalendar(false),\n children: [calendar[0][0].map(day => /*#__PURE__*/_jsx(DayOfWeek, {\n children: dateI18n('D', day, -day.getTimezoneOffset())\n }, day.toString())), calendar[0].map(week => week.map((day, index) => {\n if (!isSameMonth(day, viewing)) {\n return null;\n }\n return /*#__PURE__*/_jsx(Day, {\n day: day,\n column: index + 1,\n isSelected: isSelected(day),\n isFocusable: isEqual(day, focusable),\n isFocusAllowed: isFocusWithinCalendar,\n isToday: isSameDay(day, startOfDayInConfiguredTimezone(new Date())),\n isInvalid: isInvalidDate ? isInvalidDate(day) : false,\n numEvents: events.filter(event => isSameDay(event.date, day)).length,\n onClick: () => {\n setSelected([day]);\n setFocusable(day);\n const newDate = setInConfiguredTimezone(date, {\n year: day.getFullYear(),\n month: day.getMonth(),\n date: day.getDate()\n });\n onChange?.(formatDate(TIMEZONELESS_FORMAT, newDate));\n },\n onKeyDown: event => {\n let nextFocusable;\n if (event.key === 'ArrowLeft') {\n nextFocusable = addDays(day, isRTL() ? 1 : -1);\n }\n if (event.key === 'ArrowRight') {\n nextFocusable = addDays(day, isRTL() ? -1 : 1);\n }\n if (event.key === 'ArrowUp') {\n nextFocusable = subWeeks(day, 1);\n }\n if (event.key === 'ArrowDown') {\n nextFocusable = addWeeks(day, 1);\n }\n if (event.key === 'PageUp') {\n nextFocusable = subMonths(day, 1);\n }\n if (event.key === 'PageDown') {\n nextFocusable = addMonths(day, 1);\n }\n if (event.key === 'Home') {\n const dayOfWeek = day.getDay();\n const daysToSubtract = (dayOfWeek - weekStartsOn + 7) % 7;\n nextFocusable = subDays(day, daysToSubtract);\n }\n if (event.key === 'End') {\n const dayOfWeek = day.getDay();\n const daysToAdd = (weekStartsOn + 6 - dayOfWeek) % 7;\n nextFocusable = addDays(day, daysToAdd);\n }\n if (nextFocusable) {\n event.preventDefault();\n setFocusable(nextFocusable);\n if (!isSameMonth(nextFocusable, viewing)) {\n setViewing(nextFocusable);\n onMonthPreviewed?.(dateI18n(TIMEZONELESS_FORMAT, nextFocusable, -nextFocusable.getTimezoneOffset()));\n }\n }\n }\n }, day.toString());\n }))]\n })]\n });\n}\nfunction Day({\n day,\n column,\n isSelected,\n isFocusable,\n isFocusAllowed,\n isToday,\n isInvalid,\n numEvents,\n onClick,\n onKeyDown\n}) {\n const ref = useRef();\n\n // Focus the day when it becomes focusable, e.g. because an arrow key is\n // pressed. Only do this if focus is allowed - this stops us stealing focus\n // from e.g. a TimePicker input.\n useEffect(() => {\n if (ref.current && isFocusable && isFocusAllowed) {\n ref.current.focus();\n }\n // isFocusAllowed is not a dep as there is no point calling focus() on\n // an already focused element.\n }, [isFocusable]);\n return /*#__PURE__*/_jsx(DayButton, {\n __next40pxDefaultSize: true,\n ref: ref,\n className: \"components-datetime__date__day\" // Unused, for backwards compatibility.\n ,\n disabled: isInvalid,\n tabIndex: isFocusable ? 0 : -1,\n \"aria-label\": getDayLabel(day, isSelected, isToday, numEvents),\n column: column,\n isSelected: isSelected,\n isToday: isToday,\n hasEvents: numEvents > 0,\n onClick: onClick,\n onKeyDown: onKeyDown,\n children: dateI18n('j', day, -day.getTimezoneOffset())\n });\n}\nfunction getDayLabel(date, isSelected, isToday, numEvents) {\n const {\n formats\n } = getSettings();\n const localizedDate = dateI18n(formats.date, date, -date.getTimezoneOffset());\n const parts = [localizedDate];\n if (isSelected) {\n parts.push(__('Selected'));\n }\n if (isToday) {\n parts.push(__('Today'));\n }\n if (numEvents > 0) {\n parts.push(sprintf(\n // translators: %d: Number of events on the calendar date.\n _n('There is %d event', 'There are %d events', numEvents), numEvents));\n }\n return parts.join('. ');\n}\nexport default DatePicker;"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * External dependencies\n */\nimport { isSameDay, subMonths, addMonths, isEqual, addDays, subDays, subWeeks, addWeeks, isSameMonth } from 'date-fns';\n/**\n * WordPress dependencies\n */\nimport { __, _n, sprintf, isRTL } from '@wordpress/i18n';\nimport { arrowLeft, arrowRight } from '@wordpress/icons';\nimport { dateI18n, date as formatDate, getSettings } from '@wordpress/date';\nimport { useState, useRef, useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { useLilius } from './use-lilius';\nimport { Wrapper, Navigator, ViewPreviousMonthButton, ViewNextMonthButton, NavigatorHeading, Calendar, DayOfWeek, DayButton } from './styles';\nimport { inputToDate, setInConfiguredTimezone, startOfDayInConfiguredTimezone } from '../utils';\nimport { TIMEZONELESS_FORMAT } from '../constants';\n\n/**\n * DatePicker is a React component that renders a calendar for date selection.\n *\n * ```jsx\n * import { DatePicker } from '@wordpress/components';\n * import { useState } from '@wordpress/element';\n *\n * const MyDatePicker = () => {\n * const [ date, setDate ] = useState( new Date() );\n *\n * return (\n * <DatePicker\n * currentDate={ date }\n * onChange={ ( newDate ) => setDate( newDate ) }\n * />\n * );\n * };\n * ```\n */\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nexport function DatePicker({\n currentDate,\n onChange,\n events = [],\n isInvalidDate,\n onMonthPreviewed,\n startOfWeek: weekStartsOn = 0\n}) {\n const date = inputToDate(currentDate ?? new Date());\n const {\n calendar,\n viewing,\n setSelected,\n setViewing,\n isSelected,\n viewPreviousMonth,\n viewNextMonth\n } = useLilius({\n selected: [startOfDayInConfiguredTimezone(date)],\n viewing: startOfDayInConfiguredTimezone(date),\n weekStartsOn\n });\n\n // Used to implement a roving tab index. Tracks the day that receives focus\n // when the user tabs into the calendar.\n const [focusable, setFocusable] = useState(startOfDayInConfiguredTimezone(date));\n\n // Allows us to only programmatically focus() a day when focus was already\n // within the calendar. This stops us stealing focus from e.g. a TimePicker\n // input.\n const [isFocusWithinCalendar, setIsFocusWithinCalendar] = useState(false);\n\n // Update internal state when currentDate prop changes.\n const [prevCurrentDate, setPrevCurrentDate] = useState(currentDate);\n if (currentDate !== prevCurrentDate) {\n setPrevCurrentDate(currentDate);\n setSelected([startOfDayInConfiguredTimezone(date)]);\n setViewing(startOfDayInConfiguredTimezone(date));\n setFocusable(startOfDayInConfiguredTimezone(date));\n }\n return /*#__PURE__*/_jsxs(Wrapper, {\n className: \"components-datetime__date\",\n role: \"application\",\n \"aria-label\": __('Calendar'),\n children: [/*#__PURE__*/_jsxs(Navigator, {\n children: [/*#__PURE__*/_jsx(ViewPreviousMonthButton, {\n icon: isRTL() ? arrowRight : arrowLeft,\n variant: \"tertiary\",\n \"aria-label\": __('View previous month'),\n onClick: () => {\n viewPreviousMonth();\n setFocusable(subMonths(focusable, 1));\n const prevMonth = subMonths(viewing, 1);\n onMonthPreviewed?.(dateI18n(TIMEZONELESS_FORMAT, prevMonth, -prevMonth.getTimezoneOffset()));\n },\n size: \"compact\"\n }), /*#__PURE__*/_jsxs(NavigatorHeading, {\n level: 3,\n children: [/*#__PURE__*/_jsx(\"strong\", {\n children: dateI18n('F', viewing, -viewing.getTimezoneOffset())\n }), ' ', dateI18n('Y', viewing, -viewing.getTimezoneOffset())]\n }), /*#__PURE__*/_jsx(ViewNextMonthButton, {\n icon: isRTL() ? arrowLeft : arrowRight,\n variant: \"tertiary\",\n \"aria-label\": __('View next month'),\n onClick: () => {\n viewNextMonth();\n setFocusable(addMonths(focusable, 1));\n const nextMonth = addMonths(viewing, 1);\n onMonthPreviewed?.(dateI18n(TIMEZONELESS_FORMAT, nextMonth, -nextMonth.getTimezoneOffset()));\n },\n size: \"compact\"\n })]\n }), /*#__PURE__*/_jsxs(Calendar, {\n onFocus: () => setIsFocusWithinCalendar(true),\n onBlur: () => setIsFocusWithinCalendar(false),\n children: [calendar[0][0].map(day => /*#__PURE__*/_jsx(DayOfWeek, {\n children: dateI18n('D', day, -day.getTimezoneOffset())\n }, day.toString())), calendar[0].map(week => week.map((day, index) => {\n if (!isSameMonth(day, viewing)) {\n return null;\n }\n return /*#__PURE__*/_jsx(Day, {\n day: day,\n column: index + 1,\n isSelected: isSelected(day),\n isFocusable: isEqual(day, focusable),\n isFocusAllowed: isFocusWithinCalendar,\n isToday: isSameDay(day, startOfDayInConfiguredTimezone(new Date())),\n isInvalid: isInvalidDate ? isInvalidDate(day) : false,\n numEvents: events.filter(event => isSameDay(event.date, day)).length,\n onClick: () => {\n setSelected([day]);\n setFocusable(day);\n const newDate = setInConfiguredTimezone(date, {\n year: day.getFullYear(),\n month: day.getMonth(),\n date: day.getDate()\n });\n onChange?.(formatDate(TIMEZONELESS_FORMAT, newDate));\n },\n onKeyDown: event => {\n let nextFocusable;\n if (event.key === 'ArrowLeft') {\n nextFocusable = addDays(day, isRTL() ? 1 : -1);\n }\n if (event.key === 'ArrowRight') {\n nextFocusable = addDays(day, isRTL() ? -1 : 1);\n }\n if (event.key === 'ArrowUp') {\n nextFocusable = subWeeks(day, 1);\n }\n if (event.key === 'ArrowDown') {\n nextFocusable = addWeeks(day, 1);\n }\n if (event.key === 'PageUp') {\n nextFocusable = subMonths(day, 1);\n }\n if (event.key === 'PageDown') {\n nextFocusable = addMonths(day, 1);\n }\n if (event.key === 'Home') {\n const dayOfWeek = day.getDay();\n const daysToSubtract = (dayOfWeek - weekStartsOn + 7) % 7;\n nextFocusable = subDays(day, daysToSubtract);\n }\n if (event.key === 'End') {\n const dayOfWeek = day.getDay();\n const daysToAdd = (weekStartsOn + 6 - dayOfWeek) % 7;\n nextFocusable = addDays(day, daysToAdd);\n }\n if (nextFocusable) {\n event.preventDefault();\n setFocusable(nextFocusable);\n if (!isSameMonth(nextFocusable, viewing)) {\n setViewing(nextFocusable);\n onMonthPreviewed?.(dateI18n(TIMEZONELESS_FORMAT, nextFocusable, -nextFocusable.getTimezoneOffset()));\n }\n }\n }\n }, day.toString());\n }))]\n })]\n });\n}\nfunction Day({\n day,\n column,\n isSelected,\n isFocusable,\n isFocusAllowed,\n isToday,\n isInvalid,\n numEvents,\n onClick,\n onKeyDown\n}) {\n const ref = useRef();\n\n // Focus the day when it becomes focusable, e.g. because an arrow key is\n // pressed. Only do this if focus is allowed - this stops us stealing focus\n // from e.g. a TimePicker input.\n useEffect(() => {\n if (ref.current && isFocusable && isFocusAllowed) {\n ref.current.focus();\n }\n // isFocusAllowed is not a dep as there is no point calling focus() on\n // an already focused element.\n }, [isFocusable]);\n return /*#__PURE__*/_jsx(DayButton, {\n __next40pxDefaultSize: true,\n ref: ref,\n className: \"components-datetime__date__day\" // Unused, for backwards compatibility.\n ,\n disabled: isInvalid,\n tabIndex: isFocusable ? 0 : -1,\n \"aria-label\": getDayLabel(day, isSelected, isToday, numEvents),\n column: column,\n isSelected: isSelected,\n isToday: isToday,\n hasEvents: numEvents > 0,\n onClick: onClick,\n onKeyDown: onKeyDown,\n children: dateI18n('j', day, -day.getTimezoneOffset())\n });\n}\nfunction getDayLabel(date, isSelected, isToday, numEvents) {\n const {\n formats\n } = getSettings();\n const localizedDate = dateI18n(formats.date, date, -date.getTimezoneOffset());\n const parts = [localizedDate];\n if (isSelected) {\n parts.push(__('Selected'));\n }\n if (isToday) {\n parts.push(__('Today'));\n }\n if (numEvents > 0) {\n parts.push(sprintf(\n // translators: %d: Number of events on the calendar date.\n _n('There is %d event', 'There are %d events', numEvents), numEvents));\n }\n return parts.join('. ');\n}\nexport default DatePicker;"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -24,10 +24,10 @@ function TimePicker({
24
24
  }) {
25
25
  const [date, setDate] = useState(() => (
26
26
  // Truncate the date at the minutes, see: #15495.
27
- startOfMinute(inputToDate(currentTime !== null && currentTime !== void 0 ? currentTime : /* @__PURE__ */ new Date()))
27
+ startOfMinute(inputToDate(currentTime ?? /* @__PURE__ */ new Date()))
28
28
  ));
29
29
  useEffect(() => {
30
- setDate(startOfMinute(inputToDate(currentTime !== null && currentTime !== void 0 ? currentTime : /* @__PURE__ */ new Date())));
30
+ setDate(startOfMinute(inputToDate(currentTime ?? /* @__PURE__ */ new Date())));
31
31
  }, [currentTime]);
32
32
  const monthOptions = [{
33
33
  value: "01",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/date-time/time/index.tsx"],
4
- "sourcesContent": ["/**\n * External dependencies\n */\nimport { startOfMinute } from 'date-fns';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useMemo, useEffect } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { date as formatDate } from '@wordpress/date';\n\n/**\n * Internal dependencies\n */\nimport BaseControl from '../../base-control';\nimport { VisuallyHidden } from '../../visually-hidden';\nimport SelectControl from '../../select-control';\nimport TimeZone from './timezone';\nimport { Wrapper, Fieldset, MonthSelectWrapper, DayInput, YearInput } from './styles';\nimport { HStack } from '../../h-stack';\nimport { Spacer } from '../../spacer';\nimport { inputToDate, buildPadInputStateReducer, validateInputElementTarget, setInConfiguredTimezone } from '../utils';\nimport { TIMEZONELESS_FORMAT } from '../constants';\nimport { TimeInput } from './time-input';\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst VALID_DATE_ORDERS = ['dmy', 'mdy', 'ymd'];\n\n/**\n * TimePicker is a React component that renders a clock for time selection.\n *\n * ```jsx\n * import { TimePicker } from '@wordpress/components';\n * import { useState } from '@wordpress/element';\n *\n * const MyTimePicker = () => {\n * const [ time, setTime ] = useState( new Date() );\n *\n * return (\n * <TimePicker\n * currentTime={ date }\n * onChange={ ( newTime ) => setTime( newTime ) }\n * is12Hour\n * />\n * );\n * };\n * ```\n */\nexport function TimePicker({\n is12Hour,\n currentTime,\n onChange,\n dateOrder: dateOrderProp,\n hideLabelFromVision = false\n}) {\n const [date, setDate] = useState(() =>\n // Truncate the date at the minutes, see: #15495.\n startOfMinute(inputToDate(currentTime !== null && currentTime !== void 0 ? currentTime : new Date())));\n\n // Reset the state when currentTime changed.\n // TODO: useEffect() shouldn't be used like this, causes an unnecessary render\n useEffect(() => {\n setDate(startOfMinute(inputToDate(currentTime !== null && currentTime !== void 0 ? currentTime : new Date())));\n }, [currentTime]);\n const monthOptions = [{\n value: '01',\n label: __('January')\n }, {\n value: '02',\n label: __('February')\n }, {\n value: '03',\n label: __('March')\n }, {\n value: '04',\n label: __('April')\n }, {\n value: '05',\n label: __('May')\n }, {\n value: '06',\n label: __('June')\n }, {\n value: '07',\n label: __('July')\n }, {\n value: '08',\n label: __('August')\n }, {\n value: '09',\n label: __('September')\n }, {\n value: '10',\n label: __('October')\n }, {\n value: '11',\n label: __('November')\n }, {\n value: '12',\n label: __('December')\n }];\n const {\n day,\n month,\n year,\n minutes,\n hours\n } = useMemo(() => ({\n day: formatDate('d', date),\n month: formatDate('m', date),\n year: formatDate('Y', date),\n minutes: formatDate('i', date),\n hours: formatDate('H', date)\n }), [date]);\n const buildNumberControlChangeCallback = method => {\n const callback = (value, {\n event\n }) => {\n if (!validateInputElementTarget(event)) {\n return;\n }\n\n // We can safely assume value is a number if target is valid.\n const numberValue = Number(value);\n\n // Internal date is UTC-normalized, but the field should be updated\n // as if in the configured timezone.\n const newDate = setInConfiguredTimezone(date, {\n [method]: numberValue\n });\n setDate(newDate);\n onChange?.(formatDate(TIMEZONELESS_FORMAT, newDate));\n };\n return callback;\n };\n const onTimeInputChangeCallback = ({\n hours: newHours,\n minutes: newMinutes\n }) => {\n // Internal date is UTC-normalized, but the field should be updated\n // as if in the configured timezone.\n const newDate = setInConfiguredTimezone(date, {\n hours: newHours,\n minutes: newMinutes\n });\n setDate(newDate);\n onChange?.(formatDate(TIMEZONELESS_FORMAT, newDate));\n };\n const dayField = /*#__PURE__*/_jsx(DayInput, {\n className: \"components-datetime__time-field components-datetime__time-field-day\" // Unused, for backwards compatibility.\n ,\n label: __('Day'),\n hideLabelFromVision: true,\n __next40pxDefaultSize: true,\n value: day,\n step: 1,\n min: 1,\n max: 31,\n required: true,\n spinControls: \"none\",\n isPressEnterToChange: true,\n isDragEnabled: false,\n isShiftStepEnabled: false,\n onChange: buildNumberControlChangeCallback('date')\n }, \"day\");\n const monthField = /*#__PURE__*/_jsx(MonthSelectWrapper, {\n children: /*#__PURE__*/_jsx(SelectControl, {\n className: \"components-datetime__time-field components-datetime__time-field-month\" // Unused, for backwards compatibility.\n ,\n label: __('Month'),\n hideLabelFromVision: true,\n __next40pxDefaultSize: true,\n value: month,\n options: monthOptions,\n onChange: value => {\n // Internal date is UTC-normalized, but the field should be updated\n // as if in the configured timezone.\n const newDate = setInConfiguredTimezone(date, {\n month: Number(value) - 1\n });\n setDate(newDate);\n onChange?.(formatDate(TIMEZONELESS_FORMAT, newDate));\n }\n })\n }, \"month\");\n const yearField = /*#__PURE__*/_jsx(YearInput, {\n className: \"components-datetime__time-field components-datetime__time-field-year\" // Unused, for backwards compatibility.\n ,\n label: __('Year'),\n hideLabelFromVision: true,\n __next40pxDefaultSize: true,\n value: year,\n step: 1,\n min: 1,\n max: 9999,\n required: true,\n spinControls: \"none\",\n isPressEnterToChange: true,\n isDragEnabled: false,\n isShiftStepEnabled: false,\n onChange: buildNumberControlChangeCallback('year'),\n __unstableStateReducer: buildPadInputStateReducer(4)\n }, \"year\");\n const defaultDateOrder = is12Hour ? 'mdy' : 'dmy';\n const dateOrder = dateOrderProp && VALID_DATE_ORDERS.includes(dateOrderProp) ? dateOrderProp : defaultDateOrder;\n const fields = dateOrder.split('').map(field => {\n switch (field) {\n case 'd':\n return dayField;\n case 'm':\n return monthField;\n case 'y':\n return yearField;\n default:\n return null;\n }\n });\n return /*#__PURE__*/_jsxs(Wrapper, {\n className: \"components-datetime__time\" // Unused, for backwards compatibility.\n ,\n children: [/*#__PURE__*/_jsxs(Fieldset, {\n children: [hideLabelFromVision ? /*#__PURE__*/_jsx(VisuallyHidden, {\n as: \"legend\",\n children: __('Time')\n }) : /*#__PURE__*/_jsx(BaseControl.VisualLabel, {\n as: \"legend\",\n className: \"components-datetime__time-legend\" // Unused, for backwards compatibility.\n ,\n children: __('Time')\n }), /*#__PURE__*/_jsxs(HStack, {\n className: \"components-datetime__time-wrapper\" // Unused, for backwards compatibility.\n ,\n children: [/*#__PURE__*/_jsx(TimeInput, {\n value: {\n hours: Number(hours),\n minutes: Number(minutes)\n },\n is12Hour: is12Hour,\n onChange: onTimeInputChangeCallback\n }), /*#__PURE__*/_jsx(Spacer, {}), /*#__PURE__*/_jsx(TimeZone, {})]\n })]\n }), /*#__PURE__*/_jsxs(Fieldset, {\n children: [hideLabelFromVision ? /*#__PURE__*/_jsx(VisuallyHidden, {\n as: \"legend\",\n children: __('Date')\n }) : /*#__PURE__*/_jsx(BaseControl.VisualLabel, {\n as: \"legend\",\n className: \"components-datetime__time-legend\" // Unused, for backwards compatibility.\n ,\n children: __('Date')\n }), /*#__PURE__*/_jsx(HStack, {\n className: \"components-datetime__time-wrapper\" // Unused, for backwards compatibility.\n ,\n children: fields\n })]\n })]\n });\n}\n\n/**\n * A component to input a time.\n *\n * Values are passed as an object in 24-hour format (`{ hours: number, minutes: number }`).\n *\n * ```jsx\n * import { TimePicker } from '@wordpress/components';\n * import { useState } from '@wordpress/element';\n *\n * const MyTimeInput = () => {\n * \tconst [ time, setTime ] = useState( { hours: 13, minutes: 30 } );\n *\n * \treturn (\n * \t\t<TimePicker.TimeInput\n * \t\t\tvalue={ time }\n * \t\t\tonChange={ setTime }\n * \t\t\tlabel=\"Time\"\n * \t\t/>\n * \t);\n * };\n * ```\n */\nTimePicker.TimeInput = TimeInput;\nObject.assign(TimePicker.TimeInput, {\n displayName: 'TimePicker.TimeInput'\n});\nexport default TimePicker;"],
5
- "mappings": ";AAGA,SAAS,qBAAqB;AAK9B,SAAS,UAAU,SAAS,iBAAiB;AAC7C,SAAS,UAAU;AACnB,SAAS,QAAQ,kBAAkB;AAKnC,OAAO,iBAAiB;AACxB,SAAS,sBAAsB;AAC/B,OAAO,mBAAmB;AAC1B,OAAO,cAAc;AACrB,SAAS,SAAS,UAAU,oBAAoB,UAAU,iBAAiB;AAC3E,SAAS,cAAc;AACvB,SAAS,cAAc;AACvB,SAAS,aAAa,2BAA2B,4BAA4B,+BAA+B;AAC5G,SAAS,2BAA2B;AACpC,SAAS,iBAAiB;AAC1B,SAAS,OAAO,MAAM,QAAQ,aAAa;AAC3C,IAAM,oBAAoB,CAAC,OAAO,OAAO,KAAK;AAsBvC,SAAS,WAAW;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX,sBAAsB;AACxB,GAAG;AACD,QAAM,CAAC,MAAM,OAAO,IAAI,SAAS;AAAA;AAAA,IAEjC,cAAc,YAAY,gBAAgB,QAAQ,gBAAgB,SAAS,cAAc,oBAAI,KAAK,CAAC,CAAC;AAAA,GAAC;AAIrG,YAAU,MAAM;AACd,YAAQ,cAAc,YAAY,gBAAgB,QAAQ,gBAAgB,SAAS,cAAc,oBAAI,KAAK,CAAC,CAAC,CAAC;AAAA,EAC/G,GAAG,CAAC,WAAW,CAAC;AAChB,QAAM,eAAe,CAAC;AAAA,IACpB,OAAO;AAAA,IACP,OAAO,GAAG,SAAS;AAAA,EACrB,GAAG;AAAA,IACD,OAAO;AAAA,IACP,OAAO,GAAG,UAAU;AAAA,EACtB,GAAG;AAAA,IACD,OAAO;AAAA,IACP,OAAO,GAAG,OAAO;AAAA,EACnB,GAAG;AAAA,IACD,OAAO;AAAA,IACP,OAAO,GAAG,OAAO;AAAA,EACnB,GAAG;AAAA,IACD,OAAO;AAAA,IACP,OAAO,GAAG,KAAK;AAAA,EACjB,GAAG;AAAA,IACD,OAAO;AAAA,IACP,OAAO,GAAG,MAAM;AAAA,EAClB,GAAG;AAAA,IACD,OAAO;AAAA,IACP,OAAO,GAAG,MAAM;AAAA,EAClB,GAAG;AAAA,IACD,OAAO;AAAA,IACP,OAAO,GAAG,QAAQ;AAAA,EACpB,GAAG;AAAA,IACD,OAAO;AAAA,IACP,OAAO,GAAG,WAAW;AAAA,EACvB,GAAG;AAAA,IACD,OAAO;AAAA,IACP,OAAO,GAAG,SAAS;AAAA,EACrB,GAAG;AAAA,IACD,OAAO;AAAA,IACP,OAAO,GAAG,UAAU;AAAA,EACtB,GAAG;AAAA,IACD,OAAO;AAAA,IACP,OAAO,GAAG,UAAU;AAAA,EACtB,CAAC;AACD,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,QAAQ,OAAO;AAAA,IACjB,KAAK,WAAW,KAAK,IAAI;AAAA,IACzB,OAAO,WAAW,KAAK,IAAI;AAAA,IAC3B,MAAM,WAAW,KAAK,IAAI;AAAA,IAC1B,SAAS,WAAW,KAAK,IAAI;AAAA,IAC7B,OAAO,WAAW,KAAK,IAAI;AAAA,EAC7B,IAAI,CAAC,IAAI,CAAC;AACV,QAAM,mCAAmC,YAAU;AACjD,UAAM,WAAW,CAAC,OAAO;AAAA,MACvB;AAAA,IACF,MAAM;AACJ,UAAI,CAAC,2BAA2B,KAAK,GAAG;AACtC;AAAA,MACF;AAGA,YAAM,cAAc,OAAO,KAAK;AAIhC,YAAM,UAAU,wBAAwB,MAAM;AAAA,QAC5C,CAAC,MAAM,GAAG;AAAA,MACZ,CAAC;AACD,cAAQ,OAAO;AACf,iBAAW,WAAW,qBAAqB,OAAO,CAAC;AAAA,IACrD;AACA,WAAO;AAAA,EACT;AACA,QAAM,4BAA4B,CAAC;AAAA,IACjC,OAAO;AAAA,IACP,SAAS;AAAA,EACX,MAAM;AAGJ,UAAM,UAAU,wBAAwB,MAAM;AAAA,MAC5C,OAAO;AAAA,MACP,SAAS;AAAA,IACX,CAAC;AACD,YAAQ,OAAO;AACf,eAAW,WAAW,qBAAqB,OAAO,CAAC;AAAA,EACrD;AACA,QAAM,WAAwB,qBAAK,UAAU;AAAA,IAC3C,WAAW;AAAA,IAEX,OAAO,GAAG,KAAK;AAAA,IACf,qBAAqB;AAAA,IACrB,uBAAuB;AAAA,IACvB,OAAO;AAAA,IACP,MAAM;AAAA,IACN,KAAK;AAAA,IACL,KAAK;AAAA,IACL,UAAU;AAAA,IACV,cAAc;AAAA,IACd,sBAAsB;AAAA,IACtB,eAAe;AAAA,IACf,oBAAoB;AAAA,IACpB,UAAU,iCAAiC,MAAM;AAAA,EACnD,GAAG,KAAK;AACR,QAAM,aAA0B,qBAAK,oBAAoB;AAAA,IACvD,UAAuB,qBAAK,eAAe;AAAA,MACzC,WAAW;AAAA,MAEX,OAAO,GAAG,OAAO;AAAA,MACjB,qBAAqB;AAAA,MACrB,uBAAuB;AAAA,MACvB,OAAO;AAAA,MACP,SAAS;AAAA,MACT,UAAU,WAAS;AAGjB,cAAM,UAAU,wBAAwB,MAAM;AAAA,UAC5C,OAAO,OAAO,KAAK,IAAI;AAAA,QACzB,CAAC;AACD,gBAAQ,OAAO;AACf,mBAAW,WAAW,qBAAqB,OAAO,CAAC;AAAA,MACrD;AAAA,IACF,CAAC;AAAA,EACH,GAAG,OAAO;AACV,QAAM,YAAyB,qBAAK,WAAW;AAAA,IAC7C,WAAW;AAAA,IAEX,OAAO,GAAG,MAAM;AAAA,IAChB,qBAAqB;AAAA,IACrB,uBAAuB;AAAA,IACvB,OAAO;AAAA,IACP,MAAM;AAAA,IACN,KAAK;AAAA,IACL,KAAK;AAAA,IACL,UAAU;AAAA,IACV,cAAc;AAAA,IACd,sBAAsB;AAAA,IACtB,eAAe;AAAA,IACf,oBAAoB;AAAA,IACpB,UAAU,iCAAiC,MAAM;AAAA,IACjD,wBAAwB,0BAA0B,CAAC;AAAA,EACrD,GAAG,MAAM;AACT,QAAM,mBAAmB,WAAW,QAAQ;AAC5C,QAAM,YAAY,iBAAiB,kBAAkB,SAAS,aAAa,IAAI,gBAAgB;AAC/F,QAAM,SAAS,UAAU,MAAM,EAAE,EAAE,IAAI,WAAS;AAC9C,YAAQ,OAAO;AAAA,MACb,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO;AAAA,MACT;AACE,eAAO;AAAA,IACX;AAAA,EACF,CAAC;AACD,SAAoB,sBAAM,SAAS;AAAA,IACjC,WAAW;AAAA,IAEX,UAAU,CAAc,sBAAM,UAAU;AAAA,MACtC,UAAU,CAAC,sBAAmC,qBAAK,gBAAgB;AAAA,QACjE,IAAI;AAAA,QACJ,UAAU,GAAG,MAAM;AAAA,MACrB,CAAC,IAAiB,qBAAK,YAAY,aAAa;AAAA,QAC9C,IAAI;AAAA,QACJ,WAAW;AAAA,QAEX,UAAU,GAAG,MAAM;AAAA,MACrB,CAAC,GAAgB,sBAAM,QAAQ;AAAA,QAC7B,WAAW;AAAA,QAEX,UAAU,CAAc,qBAAK,WAAW;AAAA,UACtC,OAAO;AAAA,YACL,OAAO,OAAO,KAAK;AAAA,YACnB,SAAS,OAAO,OAAO;AAAA,UACzB;AAAA,UACA;AAAA,UACA,UAAU;AAAA,QACZ,CAAC,GAAgB,qBAAK,QAAQ,CAAC,CAAC,GAAgB,qBAAK,UAAU,CAAC,CAAC,CAAC;AAAA,MACpE,CAAC,CAAC;AAAA,IACJ,CAAC,GAAgB,sBAAM,UAAU;AAAA,MAC/B,UAAU,CAAC,sBAAmC,qBAAK,gBAAgB;AAAA,QACjE,IAAI;AAAA,QACJ,UAAU,GAAG,MAAM;AAAA,MACrB,CAAC,IAAiB,qBAAK,YAAY,aAAa;AAAA,QAC9C,IAAI;AAAA,QACJ,WAAW;AAAA,QAEX,UAAU,GAAG,MAAM;AAAA,MACrB,CAAC,GAAgB,qBAAK,QAAQ;AAAA,QAC5B,WAAW;AAAA,QAEX,UAAU;AAAA,MACZ,CAAC,CAAC;AAAA,IACJ,CAAC,CAAC;AAAA,EACJ,CAAC;AACH;AAwBA,WAAW,YAAY;AACvB,OAAO,OAAO,WAAW,WAAW;AAAA,EAClC,aAAa;AACf,CAAC;AACD,IAAO,eAAQ;",
4
+ "sourcesContent": ["/**\n * External dependencies\n */\nimport { startOfMinute } from 'date-fns';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useMemo, useEffect } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { date as formatDate } from '@wordpress/date';\n\n/**\n * Internal dependencies\n */\nimport BaseControl from '../../base-control';\nimport { VisuallyHidden } from '../../visually-hidden';\nimport SelectControl from '../../select-control';\nimport TimeZone from './timezone';\nimport { Wrapper, Fieldset, MonthSelectWrapper, DayInput, YearInput } from './styles';\nimport { HStack } from '../../h-stack';\nimport { Spacer } from '../../spacer';\nimport { inputToDate, buildPadInputStateReducer, validateInputElementTarget, setInConfiguredTimezone } from '../utils';\nimport { TIMEZONELESS_FORMAT } from '../constants';\nimport { TimeInput } from './time-input';\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst VALID_DATE_ORDERS = ['dmy', 'mdy', 'ymd'];\n\n/**\n * TimePicker is a React component that renders a clock for time selection.\n *\n * ```jsx\n * import { TimePicker } from '@wordpress/components';\n * import { useState } from '@wordpress/element';\n *\n * const MyTimePicker = () => {\n * const [ time, setTime ] = useState( new Date() );\n *\n * return (\n * <TimePicker\n * currentTime={ date }\n * onChange={ ( newTime ) => setTime( newTime ) }\n * is12Hour\n * />\n * );\n * };\n * ```\n */\nexport function TimePicker({\n is12Hour,\n currentTime,\n onChange,\n dateOrder: dateOrderProp,\n hideLabelFromVision = false\n}) {\n const [date, setDate] = useState(() =>\n // Truncate the date at the minutes, see: #15495.\n startOfMinute(inputToDate(currentTime ?? new Date())));\n\n // Reset the state when currentTime changed.\n // TODO: useEffect() shouldn't be used like this, causes an unnecessary render\n useEffect(() => {\n setDate(startOfMinute(inputToDate(currentTime ?? new Date())));\n }, [currentTime]);\n const monthOptions = [{\n value: '01',\n label: __('January')\n }, {\n value: '02',\n label: __('February')\n }, {\n value: '03',\n label: __('March')\n }, {\n value: '04',\n label: __('April')\n }, {\n value: '05',\n label: __('May')\n }, {\n value: '06',\n label: __('June')\n }, {\n value: '07',\n label: __('July')\n }, {\n value: '08',\n label: __('August')\n }, {\n value: '09',\n label: __('September')\n }, {\n value: '10',\n label: __('October')\n }, {\n value: '11',\n label: __('November')\n }, {\n value: '12',\n label: __('December')\n }];\n const {\n day,\n month,\n year,\n minutes,\n hours\n } = useMemo(() => ({\n day: formatDate('d', date),\n month: formatDate('m', date),\n year: formatDate('Y', date),\n minutes: formatDate('i', date),\n hours: formatDate('H', date)\n }), [date]);\n const buildNumberControlChangeCallback = method => {\n const callback = (value, {\n event\n }) => {\n if (!validateInputElementTarget(event)) {\n return;\n }\n\n // We can safely assume value is a number if target is valid.\n const numberValue = Number(value);\n\n // Internal date is UTC-normalized, but the field should be updated\n // as if in the configured timezone.\n const newDate = setInConfiguredTimezone(date, {\n [method]: numberValue\n });\n setDate(newDate);\n onChange?.(formatDate(TIMEZONELESS_FORMAT, newDate));\n };\n return callback;\n };\n const onTimeInputChangeCallback = ({\n hours: newHours,\n minutes: newMinutes\n }) => {\n // Internal date is UTC-normalized, but the field should be updated\n // as if in the configured timezone.\n const newDate = setInConfiguredTimezone(date, {\n hours: newHours,\n minutes: newMinutes\n });\n setDate(newDate);\n onChange?.(formatDate(TIMEZONELESS_FORMAT, newDate));\n };\n const dayField = /*#__PURE__*/_jsx(DayInput, {\n className: \"components-datetime__time-field components-datetime__time-field-day\" // Unused, for backwards compatibility.\n ,\n label: __('Day'),\n hideLabelFromVision: true,\n __next40pxDefaultSize: true,\n value: day,\n step: 1,\n min: 1,\n max: 31,\n required: true,\n spinControls: \"none\",\n isPressEnterToChange: true,\n isDragEnabled: false,\n isShiftStepEnabled: false,\n onChange: buildNumberControlChangeCallback('date')\n }, \"day\");\n const monthField = /*#__PURE__*/_jsx(MonthSelectWrapper, {\n children: /*#__PURE__*/_jsx(SelectControl, {\n className: \"components-datetime__time-field components-datetime__time-field-month\" // Unused, for backwards compatibility.\n ,\n label: __('Month'),\n hideLabelFromVision: true,\n __next40pxDefaultSize: true,\n value: month,\n options: monthOptions,\n onChange: value => {\n // Internal date is UTC-normalized, but the field should be updated\n // as if in the configured timezone.\n const newDate = setInConfiguredTimezone(date, {\n month: Number(value) - 1\n });\n setDate(newDate);\n onChange?.(formatDate(TIMEZONELESS_FORMAT, newDate));\n }\n })\n }, \"month\");\n const yearField = /*#__PURE__*/_jsx(YearInput, {\n className: \"components-datetime__time-field components-datetime__time-field-year\" // Unused, for backwards compatibility.\n ,\n label: __('Year'),\n hideLabelFromVision: true,\n __next40pxDefaultSize: true,\n value: year,\n step: 1,\n min: 1,\n max: 9999,\n required: true,\n spinControls: \"none\",\n isPressEnterToChange: true,\n isDragEnabled: false,\n isShiftStepEnabled: false,\n onChange: buildNumberControlChangeCallback('year'),\n __unstableStateReducer: buildPadInputStateReducer(4)\n }, \"year\");\n const defaultDateOrder = is12Hour ? 'mdy' : 'dmy';\n const dateOrder = dateOrderProp && VALID_DATE_ORDERS.includes(dateOrderProp) ? dateOrderProp : defaultDateOrder;\n const fields = dateOrder.split('').map(field => {\n switch (field) {\n case 'd':\n return dayField;\n case 'm':\n return monthField;\n case 'y':\n return yearField;\n default:\n return null;\n }\n });\n return /*#__PURE__*/_jsxs(Wrapper, {\n className: \"components-datetime__time\" // Unused, for backwards compatibility.\n ,\n children: [/*#__PURE__*/_jsxs(Fieldset, {\n children: [hideLabelFromVision ? /*#__PURE__*/_jsx(VisuallyHidden, {\n as: \"legend\",\n children: __('Time')\n }) : /*#__PURE__*/_jsx(BaseControl.VisualLabel, {\n as: \"legend\",\n className: \"components-datetime__time-legend\" // Unused, for backwards compatibility.\n ,\n children: __('Time')\n }), /*#__PURE__*/_jsxs(HStack, {\n className: \"components-datetime__time-wrapper\" // Unused, for backwards compatibility.\n ,\n children: [/*#__PURE__*/_jsx(TimeInput, {\n value: {\n hours: Number(hours),\n minutes: Number(minutes)\n },\n is12Hour: is12Hour,\n onChange: onTimeInputChangeCallback\n }), /*#__PURE__*/_jsx(Spacer, {}), /*#__PURE__*/_jsx(TimeZone, {})]\n })]\n }), /*#__PURE__*/_jsxs(Fieldset, {\n children: [hideLabelFromVision ? /*#__PURE__*/_jsx(VisuallyHidden, {\n as: \"legend\",\n children: __('Date')\n }) : /*#__PURE__*/_jsx(BaseControl.VisualLabel, {\n as: \"legend\",\n className: \"components-datetime__time-legend\" // Unused, for backwards compatibility.\n ,\n children: __('Date')\n }), /*#__PURE__*/_jsx(HStack, {\n className: \"components-datetime__time-wrapper\" // Unused, for backwards compatibility.\n ,\n children: fields\n })]\n })]\n });\n}\n\n/**\n * A component to input a time.\n *\n * Values are passed as an object in 24-hour format (`{ hours: number, minutes: number }`).\n *\n * ```jsx\n * import { TimePicker } from '@wordpress/components';\n * import { useState } from '@wordpress/element';\n *\n * const MyTimeInput = () => {\n * \tconst [ time, setTime ] = useState( { hours: 13, minutes: 30 } );\n *\n * \treturn (\n * \t\t<TimePicker.TimeInput\n * \t\t\tvalue={ time }\n * \t\t\tonChange={ setTime }\n * \t\t\tlabel=\"Time\"\n * \t\t/>\n * \t);\n * };\n * ```\n */\nTimePicker.TimeInput = TimeInput;\nObject.assign(TimePicker.TimeInput, {\n displayName: 'TimePicker.TimeInput'\n});\nexport default TimePicker;"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -58,8 +58,7 @@ function setInConfiguredTimezone(date, updates) {
58
58
  return new UTCDateMini(getDate(timezoneless).getTime());
59
59
  }
60
60
  function validateInputElementTarget(event) {
61
- var _ownerDocument$defaul;
62
- const HTMLInputElementInstance = (_ownerDocument$defaul = event.target?.ownerDocument.defaultView?.HTMLInputElement) !== null && _ownerDocument$defaul !== void 0 ? _ownerDocument$defaul : HTMLInputElement;
61
+ const HTMLInputElementInstance = event.target?.ownerDocument.defaultView?.HTMLInputElement ?? HTMLInputElement;
63
62
  if (!(event.target instanceof HTMLInputElementInstance)) {
64
63
  return false;
65
64
  }