@wordpress/components 29.13.1-next.719a03cbe.0 → 30.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (233) hide show
  1. package/CHANGELOG.md +14 -3
  2. package/build/autocomplete/index.js +4 -0
  3. package/build/autocomplete/index.js.map +1 -1
  4. package/build/calendar/date-calendar/index.js +13 -4
  5. package/build/calendar/date-calendar/index.js.map +1 -1
  6. package/build/calendar/date-range-calendar/index.js +8 -4
  7. package/build/calendar/date-range-calendar/index.js.map +1 -1
  8. package/build/calendar/types.js.map +1 -1
  9. package/build/icon/index.js +2 -0
  10. package/build/icon/index.js.map +1 -1
  11. package/build/index.js +0 -19
  12. package/build/index.js.map +1 -1
  13. package/build/private-apis.js +5 -1
  14. package/build/private-apis.js.map +1 -1
  15. package/build/select-control/index.js +1 -1
  16. package/build/select-control/index.js.map +1 -1
  17. package/build/toggle-group-control/toggle-group-control/as-button-group.js.map +1 -1
  18. package/build/utils/hooks/use-controlled-value.js +8 -4
  19. package/build/utils/hooks/use-controlled-value.js.map +1 -1
  20. package/build/validated-form-controls/components/checkbox-control.js +52 -0
  21. package/build/validated-form-controls/components/checkbox-control.js.map +1 -0
  22. package/build/validated-form-controls/components/combobox-control.js +64 -0
  23. package/build/validated-form-controls/components/combobox-control.js.map +1 -0
  24. package/build/validated-form-controls/components/custom-select-control.js +71 -0
  25. package/build/validated-form-controls/components/custom-select-control.js.map +1 -0
  26. package/build/validated-form-controls/components/index.js +138 -0
  27. package/build/validated-form-controls/components/index.js.map +1 -0
  28. package/build/validated-form-controls/components/input-control.js +50 -0
  29. package/build/validated-form-controls/components/input-control.js.map +1 -0
  30. package/build/validated-form-controls/components/number-control.js +53 -0
  31. package/build/validated-form-controls/components/number-control.js.map +1 -0
  32. package/build/validated-form-controls/components/radio-control.js +51 -0
  33. package/build/validated-form-controls/components/radio-control.js.map +1 -0
  34. package/build/validated-form-controls/components/range-control.js +51 -0
  35. package/build/validated-form-controls/components/range-control.js.map +1 -0
  36. package/build/validated-form-controls/components/select-control.js +53 -0
  37. package/build/validated-form-controls/components/select-control.js.map +1 -0
  38. package/build/validated-form-controls/components/text-control.js +51 -0
  39. package/build/validated-form-controls/components/text-control.js.map +1 -0
  40. package/build/validated-form-controls/components/textarea-control.js +50 -0
  41. package/build/validated-form-controls/components/textarea-control.js.map +1 -0
  42. package/build/validated-form-controls/components/toggle-control.js +60 -0
  43. package/build/validated-form-controls/components/toggle-control.js.map +1 -0
  44. package/build/validated-form-controls/components/toggle-group-control.js +69 -0
  45. package/build/validated-form-controls/components/toggle-group-control.js.map +1 -0
  46. package/build/validated-form-controls/components/types.js +6 -0
  47. package/build/validated-form-controls/components/types.js.map +1 -0
  48. package/build/validated-form-controls/control-with-error.js +137 -0
  49. package/build/validated-form-controls/control-with-error.js.map +1 -0
  50. package/build/validated-form-controls/index.js +28 -0
  51. package/build/validated-form-controls/index.js.map +1 -0
  52. package/build-module/autocomplete/index.js +4 -0
  53. package/build-module/autocomplete/index.js.map +1 -1
  54. package/build-module/calendar/date-calendar/index.js +11 -3
  55. package/build-module/calendar/date-calendar/index.js.map +1 -1
  56. package/build-module/calendar/date-range-calendar/index.js +8 -4
  57. package/build-module/calendar/date-range-calendar/index.js.map +1 -1
  58. package/build-module/calendar/types.js.map +1 -1
  59. package/build-module/icon/index.js +2 -0
  60. package/build-module/icon/index.js.map +1 -1
  61. package/build-module/index.js +0 -1
  62. package/build-module/index.js.map +1 -1
  63. package/build-module/private-apis.js +5 -1
  64. package/build-module/private-apis.js.map +1 -1
  65. package/build-module/select-control/index.js +1 -1
  66. package/build-module/select-control/index.js.map +1 -1
  67. package/build-module/toggle-group-control/toggle-group-control/as-button-group.js.map +1 -1
  68. package/build-module/utils/hooks/use-controlled-value.js +9 -5
  69. package/build-module/utils/hooks/use-controlled-value.js.map +1 -1
  70. package/build-module/validated-form-controls/components/checkbox-control.js +44 -0
  71. package/build-module/validated-form-controls/components/checkbox-control.js.map +1 -0
  72. package/build-module/validated-form-controls/components/combobox-control.js +56 -0
  73. package/build-module/validated-form-controls/components/combobox-control.js.map +1 -0
  74. package/build-module/validated-form-controls/components/custom-select-control.js +63 -0
  75. package/build-module/validated-form-controls/components/custom-select-control.js.map +1 -0
  76. package/build-module/validated-form-controls/components/index.js +13 -0
  77. package/build-module/validated-form-controls/components/index.js.map +1 -0
  78. package/build-module/validated-form-controls/components/input-control.js +42 -0
  79. package/build-module/validated-form-controls/components/input-control.js.map +1 -0
  80. package/build-module/validated-form-controls/components/number-control.js +45 -0
  81. package/build-module/validated-form-controls/components/number-control.js.map +1 -0
  82. package/build-module/validated-form-controls/components/radio-control.js +43 -0
  83. package/build-module/validated-form-controls/components/radio-control.js.map +1 -0
  84. package/build-module/validated-form-controls/components/range-control.js +43 -0
  85. package/build-module/validated-form-controls/components/range-control.js.map +1 -0
  86. package/build-module/validated-form-controls/components/select-control.js +45 -0
  87. package/build-module/validated-form-controls/components/select-control.js.map +1 -0
  88. package/build-module/validated-form-controls/components/text-control.js +43 -0
  89. package/build-module/validated-form-controls/components/text-control.js.map +1 -0
  90. package/build-module/validated-form-controls/components/textarea-control.js +42 -0
  91. package/build-module/validated-form-controls/components/textarea-control.js.map +1 -0
  92. package/build-module/validated-form-controls/components/toggle-control.js +52 -0
  93. package/build-module/validated-form-controls/components/toggle-control.js.map +1 -0
  94. package/build-module/validated-form-controls/components/toggle-group-control.js +62 -0
  95. package/build-module/validated-form-controls/components/toggle-group-control.js.map +1 -0
  96. package/build-module/validated-form-controls/components/types.js +2 -0
  97. package/build-module/validated-form-controls/components/types.js.map +1 -0
  98. package/build-module/validated-form-controls/control-with-error.js +129 -0
  99. package/build-module/validated-form-controls/control-with-error.js.map +1 -0
  100. package/build-module/validated-form-controls/index.js +3 -0
  101. package/build-module/validated-form-controls/index.js.map +1 -0
  102. package/build-style/style-rtl.css +60 -17
  103. package/build-style/style.css +60 -17
  104. package/build-types/autocomplete/index.d.ts.map +1 -1
  105. package/build-types/calendar/date-calendar/index.d.ts.map +1 -1
  106. package/build-types/calendar/date-range-calendar/index.d.ts.map +1 -1
  107. package/build-types/calendar/types.d.ts +2 -2
  108. package/build-types/calendar/types.d.ts.map +1 -1
  109. package/build-types/color-picker/styles.d.ts.map +1 -1
  110. package/build-types/icon/index.d.ts.map +1 -1
  111. package/build-types/index.d.ts +0 -1
  112. package/build-types/index.d.ts.map +1 -1
  113. package/build-types/private-apis.d.ts.map +1 -1
  114. package/build-types/select-control/stories/index.story.d.ts.map +1 -1
  115. package/build-types/toggle-group-control/toggle-group-control/as-button-group.d.ts.map +1 -1
  116. package/build-types/utils/hooks/use-controlled-value.d.ts +2 -2
  117. package/build-types/utils/hooks/use-controlled-value.d.ts.map +1 -1
  118. package/build-types/validated-form-controls/components/checkbox-control.d.ts +9 -0
  119. package/build-types/validated-form-controls/components/checkbox-control.d.ts.map +1 -0
  120. package/build-types/validated-form-controls/components/combobox-control.d.ts +21 -0
  121. package/build-types/validated-form-controls/components/combobox-control.d.ts.map +1 -0
  122. package/build-types/validated-form-controls/components/custom-select-control.d.ts +4 -0
  123. package/build-types/validated-form-controls/components/custom-select-control.d.ts.map +1 -0
  124. package/build-types/validated-form-controls/components/index.d.ts +13 -0
  125. package/build-types/validated-form-controls/components/index.d.ts.map +1 -0
  126. package/build-types/validated-form-controls/components/input-control.d.ts +4 -0
  127. package/build-types/validated-form-controls/components/input-control.d.ts.map +1 -0
  128. package/build-types/validated-form-controls/components/number-control.d.ts +17 -0
  129. package/build-types/validated-form-controls/components/number-control.d.ts.map +1 -0
  130. package/build-types/validated-form-controls/components/radio-control.d.ts +11 -0
  131. package/build-types/validated-form-controls/components/radio-control.d.ts.map +1 -0
  132. package/build-types/validated-form-controls/components/range-control.d.ts +36 -0
  133. package/build-types/validated-form-controls/components/range-control.d.ts.map +1 -0
  134. package/build-types/validated-form-controls/components/select-control.d.ts +9 -0
  135. package/build-types/validated-form-controls/components/select-control.d.ts.map +1 -0
  136. package/build-types/validated-form-controls/components/stories/checkbox-control.story.d.ts +12 -0
  137. package/build-types/validated-form-controls/components/stories/checkbox-control.story.d.ts.map +1 -0
  138. package/build-types/validated-form-controls/components/stories/combobox-control.story.d.ts +12 -0
  139. package/build-types/validated-form-controls/components/stories/combobox-control.story.d.ts.map +1 -0
  140. package/build-types/validated-form-controls/components/stories/custom-select-control.story.d.ts +12 -0
  141. package/build-types/validated-form-controls/components/stories/custom-select-control.story.d.ts.map +1 -0
  142. package/build-types/validated-form-controls/components/stories/input-control.story.d.ts +18 -0
  143. package/build-types/validated-form-controls/components/stories/input-control.story.d.ts.map +1 -0
  144. package/build-types/validated-form-controls/components/stories/number-control.story.d.ts +12 -0
  145. package/build-types/validated-form-controls/components/stories/number-control.story.d.ts.map +1 -0
  146. package/build-types/validated-form-controls/components/stories/overview.story.d.ts +19 -0
  147. package/build-types/validated-form-controls/components/stories/overview.story.d.ts.map +1 -0
  148. package/build-types/validated-form-controls/components/stories/radio-control.story.d.ts +12 -0
  149. package/build-types/validated-form-controls/components/stories/radio-control.story.d.ts.map +1 -0
  150. package/build-types/validated-form-controls/components/stories/range-control.story.d.ts +9 -0
  151. package/build-types/validated-form-controls/components/stories/range-control.story.d.ts.map +1 -0
  152. package/build-types/validated-form-controls/components/stories/select-control.story.d.ts +12 -0
  153. package/build-types/validated-form-controls/components/stories/select-control.story.d.ts.map +1 -0
  154. package/build-types/validated-form-controls/components/stories/story-utils.d.ts +9 -0
  155. package/build-types/validated-form-controls/components/stories/story-utils.d.ts.map +1 -0
  156. package/build-types/validated-form-controls/components/stories/text-control.story.d.ts +9 -0
  157. package/build-types/validated-form-controls/components/stories/text-control.story.d.ts.map +1 -0
  158. package/build-types/validated-form-controls/components/stories/textarea-control.story.d.ts +9 -0
  159. package/build-types/validated-form-controls/components/stories/textarea-control.story.d.ts.map +1 -0
  160. package/build-types/validated-form-controls/components/stories/toggle-control.story.d.ts +9 -0
  161. package/build-types/validated-form-controls/components/stories/toggle-control.story.d.ts.map +1 -0
  162. package/build-types/validated-form-controls/components/stories/toggle-group-control.story.d.ts +9 -0
  163. package/build-types/validated-form-controls/components/stories/toggle-group-control.story.d.ts.map +1 -0
  164. package/build-types/validated-form-controls/components/text-control.d.ts +8 -0
  165. package/build-types/validated-form-controls/components/text-control.d.ts.map +1 -0
  166. package/build-types/validated-form-controls/components/textarea-control.d.ts +7 -0
  167. package/build-types/validated-form-controls/components/textarea-control.d.ts.map +1 -0
  168. package/build-types/validated-form-controls/components/toggle-control.d.ts +7 -0
  169. package/build-types/validated-form-controls/components/toggle-control.d.ts.map +1 -0
  170. package/build-types/validated-form-controls/components/toggle-group-control.d.ts +15 -0
  171. package/build-types/validated-form-controls/components/toggle-group-control.d.ts.map +1 -0
  172. package/build-types/validated-form-controls/components/types.d.ts +27 -0
  173. package/build-types/validated-form-controls/components/types.d.ts.map +1 -0
  174. package/build-types/validated-form-controls/control-with-error.d.ts +36 -0
  175. package/build-types/validated-form-controls/control-with-error.d.ts.map +1 -0
  176. package/build-types/validated-form-controls/index.d.ts +3 -0
  177. package/build-types/validated-form-controls/index.d.ts.map +1 -0
  178. package/package.json +19 -19
  179. package/src/autocomplete/index.tsx +4 -0
  180. package/src/calendar/date-calendar/README.md +57 -46
  181. package/src/calendar/date-calendar/index.tsx +22 -8
  182. package/src/calendar/date-range-calendar/README.md +63 -52
  183. package/src/calendar/date-range-calendar/index.tsx +23 -11
  184. package/src/calendar/types.ts +2 -2
  185. package/src/dimension-control/test/__snapshots__/index.test.js.snap +8 -8
  186. package/src/icon/index.tsx +2 -0
  187. package/src/index.ts +0 -1
  188. package/src/private-apis.ts +5 -0
  189. package/src/select-control/index.tsx +1 -1
  190. package/src/style.scss +2 -2
  191. package/src/toggle-group-control/toggle-group-control/as-button-group.tsx +3 -1
  192. package/src/utils/hooks/use-controlled-value.ts +16 -8
  193. package/src/validated-form-controls/components/checkbox-control.tsx +64 -0
  194. package/src/validated-form-controls/components/combobox-control.tsx +77 -0
  195. package/src/validated-form-controls/components/custom-select-control.tsx +86 -0
  196. package/src/validated-form-controls/components/index.ts +12 -0
  197. package/src/validated-form-controls/components/input-control.tsx +59 -0
  198. package/src/validated-form-controls/components/number-control.tsx +61 -0
  199. package/src/validated-form-controls/components/radio-control.tsx +60 -0
  200. package/src/validated-form-controls/components/range-control.tsx +60 -0
  201. package/src/validated-form-controls/components/select-control.tsx +75 -0
  202. package/src/validated-form-controls/components/stories/checkbox-control.story.tsx +57 -0
  203. package/src/validated-form-controls/components/stories/combobox-control.story.tsx +64 -0
  204. package/src/validated-form-controls/components/stories/custom-select-control.story.tsx +64 -0
  205. package/src/validated-form-controls/components/stories/input-control.story.tsx +132 -0
  206. package/src/validated-form-controls/components/stories/number-control.story.tsx +62 -0
  207. package/src/validated-form-controls/components/stories/overview.mdx +52 -0
  208. package/src/validated-form-controls/components/stories/overview.story.tsx +100 -0
  209. package/src/validated-form-controls/components/stories/radio-control.story.tsx +64 -0
  210. package/src/validated-form-controls/components/stories/range-control.story.tsx +60 -0
  211. package/src/validated-form-controls/components/stories/select-control.story.tsx +60 -0
  212. package/src/validated-form-controls/components/stories/story-utils.tsx +46 -0
  213. package/src/validated-form-controls/components/stories/text-control.story.tsx +55 -0
  214. package/src/validated-form-controls/components/stories/textarea-control.story.tsx +52 -0
  215. package/src/validated-form-controls/components/stories/toggle-control.story.tsx +55 -0
  216. package/src/validated-form-controls/components/stories/toggle-group-control.story.tsx +66 -0
  217. package/src/validated-form-controls/components/text-control.tsx +60 -0
  218. package/src/validated-form-controls/components/textarea-control.tsx +59 -0
  219. package/src/validated-form-controls/components/toggle-control.tsx +69 -0
  220. package/src/validated-form-controls/components/toggle-group-control.tsx +82 -0
  221. package/src/validated-form-controls/components/types.ts +28 -0
  222. package/src/validated-form-controls/control-with-error.tsx +198 -0
  223. package/src/validated-form-controls/index.ts +2 -0
  224. package/src/validated-form-controls/style.scss +75 -0
  225. package/tsconfig.tsbuildinfo +1 -1
  226. package/build/calendar/utils/use-controlled-value.js +0 -58
  227. package/build/calendar/utils/use-controlled-value.js.map +0 -1
  228. package/build-module/calendar/utils/use-controlled-value.js +0 -51
  229. package/build-module/calendar/utils/use-controlled-value.js.map +0 -1
  230. package/build-types/calendar/utils/use-controlled-value.d.ts +0 -27
  231. package/build-types/calendar/utils/use-controlled-value.d.ts.map +0 -1
  232. package/src/calendar/utils/use-controlled-value.ts +0 -61
  233. package/src/dimension-control/style.scss +0 -22
@@ -14,6 +14,7 @@ var _strings = require("./utils/strings");
14
14
  var _withIgnoreImeEvents = require("./utils/with-ignore-ime-events");
15
15
  var _lockUnlock = require("./lock-unlock");
16
16
  var _badge = _interopRequireDefault(require("./badge"));
17
+ var _calendar = require("./calendar");
17
18
  /**
18
19
  * Internal dependencies
19
20
  */
@@ -28,6 +29,9 @@ const privateApis = exports.privateApis = {};
28
29
  kebabCase: _strings.kebabCase,
29
30
  withIgnoreIMEEvents: _withIgnoreImeEvents.withIgnoreIMEEvents,
30
31
  Badge: _badge.default,
31
- normalizeTextString: _strings.normalizeTextString
32
+ normalizeTextString: _strings.normalizeTextString,
33
+ DateCalendar: _calendar.DateCalendar,
34
+ DateRangeCalendar: _calendar.DateRangeCalendar,
35
+ TZDate: _calendar.TZDate
32
36
  });
33
37
  //# sourceMappingURL=private-apis.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_utils","require","_menu","_contextSystemProvider","_theme","_interopRequireDefault","_tabs","_strings","_withIgnoreImeEvents","_lockUnlock","_badge","privateApis","exports","lock","__experimentalPopoverLegacyPositionToPlacement","ComponentsContext","Tabs","Theme","Menu","kebabCase","withIgnoreIMEEvents","Badge","normalizeTextString"],"sources":["@wordpress/components/src/private-apis.ts"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport { positionToPlacement as __experimentalPopoverLegacyPositionToPlacement } from './popover/utils';\nimport { Menu } from './menu';\nimport { ComponentsContext } from './context/context-system-provider';\nimport Theme from './theme';\nimport { Tabs } from './tabs';\nimport { kebabCase, normalizeTextString } from './utils/strings';\nimport { withIgnoreIMEEvents } from './utils/with-ignore-ime-events';\nimport { lock } from './lock-unlock';\nimport Badge from './badge';\n\nexport const privateApis = {};\nlock( privateApis, {\n\t__experimentalPopoverLegacyPositionToPlacement,\n\tComponentsContext,\n\tTabs,\n\tTheme,\n\tMenu,\n\tkebabCase,\n\twithIgnoreIMEEvents,\n\tBadge,\n\tnormalizeTextString,\n} );\n"],"mappings":";;;;;;;AAGA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,sBAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAC,sBAAA,CAAAJ,OAAA;AACA,IAAAK,KAAA,GAAAL,OAAA;AACA,IAAAM,QAAA,GAAAN,OAAA;AACA,IAAAO,oBAAA,GAAAP,OAAA;AACA,IAAAQ,WAAA,GAAAR,OAAA;AACA,IAAAS,MAAA,GAAAL,sBAAA,CAAAJ,OAAA;AAXA;AACA;AACA;;AAWO,MAAMU,WAAW,GAAAC,OAAA,CAAAD,WAAA,GAAG,CAAC,CAAC;AAC7B,IAAAE,gBAAI,EAAEF,WAAW,EAAE;EAClBG,8CAA8C,EAA9CA,0BAA8C;EAC9CC,iBAAiB,EAAjBA,wCAAiB;EACjBC,IAAI,EAAJA,UAAI;EACJC,KAAK,EAALA,cAAK;EACLC,IAAI,EAAJA,UAAI;EACJC,SAAS,EAATA,kBAAS;EACTC,mBAAmB,EAAnBA,wCAAmB;EACnBC,KAAK,EAALA,cAAK;EACLC,mBAAmB,EAAnBA;AACD,CAAE,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_utils","require","_menu","_contextSystemProvider","_theme","_interopRequireDefault","_tabs","_strings","_withIgnoreImeEvents","_lockUnlock","_badge","_calendar","privateApis","exports","lock","__experimentalPopoverLegacyPositionToPlacement","ComponentsContext","Tabs","Theme","Menu","kebabCase","withIgnoreIMEEvents","Badge","normalizeTextString","DateCalendar","DateRangeCalendar","TZDate"],"sources":["@wordpress/components/src/private-apis.ts"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport { positionToPlacement as __experimentalPopoverLegacyPositionToPlacement } from './popover/utils';\nimport { Menu } from './menu';\nimport { ComponentsContext } from './context/context-system-provider';\nimport Theme from './theme';\nimport { Tabs } from './tabs';\nimport { kebabCase, normalizeTextString } from './utils/strings';\nimport { withIgnoreIMEEvents } from './utils/with-ignore-ime-events';\nimport { lock } from './lock-unlock';\nimport Badge from './badge';\n\nimport { DateCalendar, DateRangeCalendar, TZDate } from './calendar';\n\nexport const privateApis = {};\nlock( privateApis, {\n\t__experimentalPopoverLegacyPositionToPlacement,\n\tComponentsContext,\n\tTabs,\n\tTheme,\n\tMenu,\n\tkebabCase,\n\twithIgnoreIMEEvents,\n\tBadge,\n\tnormalizeTextString,\n\tDateCalendar,\n\tDateRangeCalendar,\n\tTZDate,\n} );\n"],"mappings":";;;;;;;AAGA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,sBAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAC,sBAAA,CAAAJ,OAAA;AACA,IAAAK,KAAA,GAAAL,OAAA;AACA,IAAAM,QAAA,GAAAN,OAAA;AACA,IAAAO,oBAAA,GAAAP,OAAA;AACA,IAAAQ,WAAA,GAAAR,OAAA;AACA,IAAAS,MAAA,GAAAL,sBAAA,CAAAJ,OAAA;AAEA,IAAAU,SAAA,GAAAV,OAAA;AAbA;AACA;AACA;;AAaO,MAAMW,WAAW,GAAAC,OAAA,CAAAD,WAAA,GAAG,CAAC,CAAC;AAC7B,IAAAE,gBAAI,EAAEF,WAAW,EAAE;EAClBG,8CAA8C,EAA9CA,0BAA8C;EAC9CC,iBAAiB,EAAjBA,wCAAiB;EACjBC,IAAI,EAAJA,UAAI;EACJC,KAAK,EAALA,cAAK;EACLC,IAAI,EAAJA,UAAI;EACJC,SAAS,EAATA,kBAAS;EACTC,mBAAmB,EAAnBA,wCAAmB;EACnBC,KAAK,EAALA,cAAK;EACLC,mBAAmB,EAAnBA,4BAAmB;EACnBC,YAAY,EAAZA,sBAAY;EACZC,iBAAiB,EAAjBA,2BAAiB;EACjBC,MAAM,EAANA;AACD,CAAE,CAAC","ignoreList":[]}
@@ -105,10 +105,10 @@ function UnforwardedSelectControl(props, ref) {
105
105
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_baseControl.default, {
106
106
  help: help,
107
107
  id: id,
108
+ className: classes,
108
109
  __nextHasNoMarginBottom: __nextHasNoMarginBottom,
109
110
  __associatedWPComponentName: "SelectControl",
110
111
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_selectControlStyles.StyledInputBase, {
111
- className: classes,
112
112
  disabled: disabled,
113
113
  hideLabelFromVision: hideLabelFromVision,
114
114
  id: id,
@@ -1 +1 @@
1
- {"version":3,"names":["_clsx","_interopRequireDefault","require","_compose","_element","_baseControl","_selectControlStyles","_chevronDown","_useDeprecatedProps","_deprecated36pxSize","_jsxRuntime","useUniqueId","idProp","instanceId","useInstanceId","SelectControl","id","SelectOptions","options","map","label","value","optionProps","index","key","jsx","children","UnforwardedSelectControl","props","ref","className","disabled","help","hideLabelFromVision","multiple","onChange","size","valueProp","labelPosition","prefix","suffix","variant","__next40pxDefaultSize","__nextHasNoMarginBottom","__shouldNotWarnDeprecated36pxSize","restProps","useDeprecated36pxDefaultSizeProp","helpId","undefined","length","handleOnChange","event","selectedOptions","Array","from","target","filter","selected","newValues","classes","clsx","maybeWarnDeprecated36pxSize","componentName","default","__associatedWPComponentName","StyledInputBase","isBorderless","__unstableInputWidth","Select","selectSize","exports","forwardRef","_default"],"sources":["@wordpress/components/src/select-control/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useInstanceId } from '@wordpress/compose';\nimport { forwardRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport BaseControl from '../base-control';\nimport { Select, StyledInputBase } from './styles/select-control-styles';\nimport type { WordPressComponentProps } from '../context';\nimport type { SelectControlProps } from './types';\nimport SelectControlChevronDown from './chevron-down';\nimport { useDeprecated36pxDefaultSizeProp } from '../utils/use-deprecated-props';\nimport { maybeWarnDeprecated36pxSize } from '../utils/deprecated-36px-size';\n\nfunction useUniqueId( idProp?: string ) {\n\tconst instanceId = useInstanceId( SelectControl );\n\tconst id = `inspector-select-control-${ instanceId }`;\n\n\treturn idProp || id;\n}\n\nfunction SelectOptions( {\n\toptions,\n}: {\n\toptions: NonNullable< SelectControlProps[ 'options' ] >;\n} ) {\n\treturn options.map( ( { id, label, value, ...optionProps }, index ) => {\n\t\tconst key = id || `${ label }-${ value }-${ index }`;\n\n\t\treturn (\n\t\t\t<option key={ key } value={ value } { ...optionProps }>\n\t\t\t\t{ label }\n\t\t\t</option>\n\t\t);\n\t} );\n}\n\nfunction UnforwardedSelectControl< V extends string >(\n\tprops: WordPressComponentProps< SelectControlProps< V >, 'select', false >,\n\tref: React.ForwardedRef< HTMLSelectElement >\n) {\n\tconst {\n\t\tclassName,\n\t\tdisabled = false,\n\t\thelp,\n\t\thideLabelFromVision,\n\t\tid: idProp,\n\t\tlabel,\n\t\tmultiple = false,\n\t\tonChange,\n\t\toptions = [],\n\t\tsize = 'default',\n\t\tvalue: valueProp,\n\t\tlabelPosition = 'top',\n\t\tchildren,\n\t\tprefix,\n\t\tsuffix,\n\t\tvariant = 'default',\n\t\t__next40pxDefaultSize = false,\n\t\t__nextHasNoMarginBottom = false,\n\t\t__shouldNotWarnDeprecated36pxSize,\n\t\t...restProps\n\t} = useDeprecated36pxDefaultSizeProp( props );\n\tconst id = useUniqueId( idProp );\n\tconst helpId = help ? `${ id }__help` : undefined;\n\n\t// Disable reason: A select with an onchange throws a warning.\n\tif ( ! options?.length && ! children ) {\n\t\treturn null;\n\t}\n\n\tconst handleOnChange = (\n\t\tevent: React.ChangeEvent< HTMLSelectElement >\n\t) => {\n\t\tif ( props.multiple ) {\n\t\t\tconst selectedOptions = Array.from( event.target.options ).filter(\n\t\t\t\t( { selected } ) => selected\n\t\t\t);\n\t\t\tconst newValues = selectedOptions.map(\n\t\t\t\t( { value } ) => value as V\n\t\t\t);\n\t\t\tprops.onChange?.( newValues, { event } );\n\t\t\treturn;\n\t\t}\n\n\t\tprops.onChange?.( event.target.value as V, { event } );\n\t};\n\n\tconst classes = clsx( 'components-select-control', className );\n\n\tmaybeWarnDeprecated36pxSize( {\n\t\tcomponentName: 'SelectControl',\n\t\t__next40pxDefaultSize,\n\t\tsize,\n\t\t__shouldNotWarnDeprecated36pxSize,\n\t} );\n\n\treturn (\n\t\t<BaseControl\n\t\t\thelp={ help }\n\t\t\tid={ id }\n\t\t\t__nextHasNoMarginBottom={ __nextHasNoMarginBottom }\n\t\t\t__associatedWPComponentName=\"SelectControl\"\n\t\t>\n\t\t\t<StyledInputBase\n\t\t\t\tclassName={ classes }\n\t\t\t\tdisabled={ disabled }\n\t\t\t\thideLabelFromVision={ hideLabelFromVision }\n\t\t\t\tid={ id }\n\t\t\t\tisBorderless={ variant === 'minimal' }\n\t\t\t\tlabel={ label }\n\t\t\t\tsize={ size }\n\t\t\t\tsuffix={\n\t\t\t\t\tsuffix || ( ! multiple && <SelectControlChevronDown /> )\n\t\t\t\t}\n\t\t\t\tprefix={ prefix }\n\t\t\t\tlabelPosition={ labelPosition }\n\t\t\t\t__unstableInputWidth={\n\t\t\t\t\tvariant === 'minimal' ? 'auto' : undefined\n\t\t\t\t}\n\t\t\t\tvariant={ variant }\n\t\t\t\t__next40pxDefaultSize={ __next40pxDefaultSize }\n\t\t\t>\n\t\t\t\t<Select\n\t\t\t\t\t{ ...restProps }\n\t\t\t\t\t__next40pxDefaultSize={ __next40pxDefaultSize }\n\t\t\t\t\taria-describedby={ helpId }\n\t\t\t\t\tclassName=\"components-select-control__input\"\n\t\t\t\t\tdisabled={ disabled }\n\t\t\t\t\tid={ id }\n\t\t\t\t\tmultiple={ multiple }\n\t\t\t\t\tonChange={ handleOnChange }\n\t\t\t\t\tref={ ref }\n\t\t\t\t\tselectSize={ size }\n\t\t\t\t\tvalue={ valueProp }\n\t\t\t\t\tvariant={ variant }\n\t\t\t\t>\n\t\t\t\t\t{ children || <SelectOptions options={ options } /> }\n\t\t\t\t</Select>\n\t\t\t</StyledInputBase>\n\t\t</BaseControl>\n\t);\n}\n\n/**\n * `SelectControl` allows users to select from a single or multiple option menu.\n * It functions as a wrapper around the browser's native `<select>` element.\n *\n * ```jsx\n * import { SelectControl } from '@wordpress/components';\n * import { useState } from '@wordpress/element';\n *\n * const MySelectControl = () => {\n * const [ size, setSize ] = useState( '50%' );\n *\n * return (\n * <SelectControl\n * __next40pxDefaultSize\n * __nextHasNoMarginBottom\n * label=\"Size\"\n * value={ size }\n * options={ [\n * { label: 'Big', value: '100%' },\n * { label: 'Medium', value: '50%' },\n * { label: 'Small', value: '25%' },\n * ] }\n * onChange={ setSize }\n * />\n * );\n * };\n * ```\n */\nexport const SelectControl = forwardRef( UnforwardedSelectControl ) as <\n\tV extends string,\n>(\n\tprops: WordPressComponentProps<\n\t\tSelectControlProps< V >,\n\t\t'select',\n\t\tfalse\n\t> & { ref?: React.Ref< HTMLSelectElement > }\n) => React.JSX.Element | null;\n\nexport default SelectControl;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_clsx","_interopRequireDefault","require","_compose","_element","_baseControl","_selectControlStyles","_chevronDown","_useDeprecatedProps","_deprecated36pxSize","_jsxRuntime","useUniqueId","idProp","instanceId","useInstanceId","SelectControl","id","SelectOptions","options","map","label","value","optionProps","index","key","jsx","children","UnforwardedSelectControl","props","ref","className","disabled","help","hideLabelFromVision","multiple","onChange","size","valueProp","labelPosition","prefix","suffix","variant","__next40pxDefaultSize","__nextHasNoMarginBottom","__shouldNotWarnDeprecated36pxSize","restProps","useDeprecated36pxDefaultSizeProp","helpId","undefined","length","handleOnChange","event","selectedOptions","Array","from","target","filter","selected","newValues","classes","clsx","maybeWarnDeprecated36pxSize","componentName","default","__associatedWPComponentName","StyledInputBase","isBorderless","__unstableInputWidth","Select","selectSize","exports","forwardRef","_default"],"sources":["@wordpress/components/src/select-control/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useInstanceId } from '@wordpress/compose';\nimport { forwardRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport BaseControl from '../base-control';\nimport { Select, StyledInputBase } from './styles/select-control-styles';\nimport type { WordPressComponentProps } from '../context';\nimport type { SelectControlProps } from './types';\nimport SelectControlChevronDown from './chevron-down';\nimport { useDeprecated36pxDefaultSizeProp } from '../utils/use-deprecated-props';\nimport { maybeWarnDeprecated36pxSize } from '../utils/deprecated-36px-size';\n\nfunction useUniqueId( idProp?: string ) {\n\tconst instanceId = useInstanceId( SelectControl );\n\tconst id = `inspector-select-control-${ instanceId }`;\n\n\treturn idProp || id;\n}\n\nfunction SelectOptions( {\n\toptions,\n}: {\n\toptions: NonNullable< SelectControlProps[ 'options' ] >;\n} ) {\n\treturn options.map( ( { id, label, value, ...optionProps }, index ) => {\n\t\tconst key = id || `${ label }-${ value }-${ index }`;\n\n\t\treturn (\n\t\t\t<option key={ key } value={ value } { ...optionProps }>\n\t\t\t\t{ label }\n\t\t\t</option>\n\t\t);\n\t} );\n}\n\nfunction UnforwardedSelectControl< V extends string >(\n\tprops: WordPressComponentProps< SelectControlProps< V >, 'select', false >,\n\tref: React.ForwardedRef< HTMLSelectElement >\n) {\n\tconst {\n\t\tclassName,\n\t\tdisabled = false,\n\t\thelp,\n\t\thideLabelFromVision,\n\t\tid: idProp,\n\t\tlabel,\n\t\tmultiple = false,\n\t\tonChange,\n\t\toptions = [],\n\t\tsize = 'default',\n\t\tvalue: valueProp,\n\t\tlabelPosition = 'top',\n\t\tchildren,\n\t\tprefix,\n\t\tsuffix,\n\t\tvariant = 'default',\n\t\t__next40pxDefaultSize = false,\n\t\t__nextHasNoMarginBottom = false,\n\t\t__shouldNotWarnDeprecated36pxSize,\n\t\t...restProps\n\t} = useDeprecated36pxDefaultSizeProp( props );\n\tconst id = useUniqueId( idProp );\n\tconst helpId = help ? `${ id }__help` : undefined;\n\n\t// Disable reason: A select with an onchange throws a warning.\n\tif ( ! options?.length && ! children ) {\n\t\treturn null;\n\t}\n\n\tconst handleOnChange = (\n\t\tevent: React.ChangeEvent< HTMLSelectElement >\n\t) => {\n\t\tif ( props.multiple ) {\n\t\t\tconst selectedOptions = Array.from( event.target.options ).filter(\n\t\t\t\t( { selected } ) => selected\n\t\t\t);\n\t\t\tconst newValues = selectedOptions.map(\n\t\t\t\t( { value } ) => value as V\n\t\t\t);\n\t\t\tprops.onChange?.( newValues, { event } );\n\t\t\treturn;\n\t\t}\n\n\t\tprops.onChange?.( event.target.value as V, { event } );\n\t};\n\n\tconst classes = clsx( 'components-select-control', className );\n\n\tmaybeWarnDeprecated36pxSize( {\n\t\tcomponentName: 'SelectControl',\n\t\t__next40pxDefaultSize,\n\t\tsize,\n\t\t__shouldNotWarnDeprecated36pxSize,\n\t} );\n\n\treturn (\n\t\t<BaseControl\n\t\t\thelp={ help }\n\t\t\tid={ id }\n\t\t\tclassName={ classes }\n\t\t\t__nextHasNoMarginBottom={ __nextHasNoMarginBottom }\n\t\t\t__associatedWPComponentName=\"SelectControl\"\n\t\t>\n\t\t\t<StyledInputBase\n\t\t\t\tdisabled={ disabled }\n\t\t\t\thideLabelFromVision={ hideLabelFromVision }\n\t\t\t\tid={ id }\n\t\t\t\tisBorderless={ variant === 'minimal' }\n\t\t\t\tlabel={ label }\n\t\t\t\tsize={ size }\n\t\t\t\tsuffix={\n\t\t\t\t\tsuffix || ( ! multiple && <SelectControlChevronDown /> )\n\t\t\t\t}\n\t\t\t\tprefix={ prefix }\n\t\t\t\tlabelPosition={ labelPosition }\n\t\t\t\t__unstableInputWidth={\n\t\t\t\t\tvariant === 'minimal' ? 'auto' : undefined\n\t\t\t\t}\n\t\t\t\tvariant={ variant }\n\t\t\t\t__next40pxDefaultSize={ __next40pxDefaultSize }\n\t\t\t>\n\t\t\t\t<Select\n\t\t\t\t\t{ ...restProps }\n\t\t\t\t\t__next40pxDefaultSize={ __next40pxDefaultSize }\n\t\t\t\t\taria-describedby={ helpId }\n\t\t\t\t\tclassName=\"components-select-control__input\"\n\t\t\t\t\tdisabled={ disabled }\n\t\t\t\t\tid={ id }\n\t\t\t\t\tmultiple={ multiple }\n\t\t\t\t\tonChange={ handleOnChange }\n\t\t\t\t\tref={ ref }\n\t\t\t\t\tselectSize={ size }\n\t\t\t\t\tvalue={ valueProp }\n\t\t\t\t\tvariant={ variant }\n\t\t\t\t>\n\t\t\t\t\t{ children || <SelectOptions options={ options } /> }\n\t\t\t\t</Select>\n\t\t\t</StyledInputBase>\n\t\t</BaseControl>\n\t);\n}\n\n/**\n * `SelectControl` allows users to select from a single or multiple option menu.\n * It functions as a wrapper around the browser's native `<select>` element.\n *\n * ```jsx\n * import { SelectControl } from '@wordpress/components';\n * import { useState } from '@wordpress/element';\n *\n * const MySelectControl = () => {\n * const [ size, setSize ] = useState( '50%' );\n *\n * return (\n * <SelectControl\n * __next40pxDefaultSize\n * __nextHasNoMarginBottom\n * label=\"Size\"\n * value={ size }\n * options={ [\n * { label: 'Big', value: '100%' },\n * { label: 'Medium', value: '50%' },\n * { label: 'Small', value: '25%' },\n * ] }\n * onChange={ setSize }\n * />\n * );\n * };\n * ```\n */\nexport const SelectControl = forwardRef( UnforwardedSelectControl ) as <\n\tV extends string,\n>(\n\tprops: WordPressComponentProps<\n\t\tSelectControlProps< V >,\n\t\t'select',\n\t\tfalse\n\t> & { ref?: React.Ref< HTMLSelectElement > }\n) => React.JSX.Element | null;\n\nexport default SelectControl;\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_compose","require","_element","_view","_utils","_context","_interopRequireDefault","_utils2","_jsxRuntime","UnforwardedToggleGroupControlAsButtonGroup","children","isAdaptiveWidth","label","onChange","size","value","valueProp","id","idProp","setSelectedElement","otherProps","forwardedRef","generatedId","useInstanceId","ToggleGroupControlAsButtonGroup","baseId","defaultValue","useComputeControlledOrUncontrolledValue","selectedValue","setSelectedValue","useControlledValue","groupContextValue","useMemo","setValue","isBlock","isDeselectable","jsx","default","Provider","View","ref","role","exports","forwardRef"],"sources":["@wordpress/components/src/toggle-group-control/toggle-group-control/as-button-group.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useInstanceId } from '@wordpress/compose';\nimport { forwardRef, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { View } from '../../view';\nimport { useControlledValue } from '../../utils';\nimport type { WordPressComponentProps } from '../../context';\nimport ToggleGroupControlContext from '../context';\nimport { useComputeControlledOrUncontrolledValue } from './utils';\nimport type {\n\tToggleGroupControlMainControlProps,\n\tToggleGroupControlContextProps,\n} from '../types';\n\nfunction UnforwardedToggleGroupControlAsButtonGroup(\n\t{\n\t\tchildren,\n\t\tisAdaptiveWidth,\n\t\tlabel,\n\t\tonChange,\n\t\tsize,\n\t\tvalue: valueProp,\n\t\tid: idProp,\n\t\tsetSelectedElement,\n\t\t...otherProps\n\t}: WordPressComponentProps<\n\t\tToggleGroupControlMainControlProps,\n\t\t'div',\n\t\tfalse\n\t>,\n\tforwardedRef: React.ForwardedRef< HTMLDivElement >\n) {\n\tconst generatedId = useInstanceId(\n\t\tToggleGroupControlAsButtonGroup,\n\t\t'toggle-group-control-as-button-group'\n\t);\n\tconst baseId = idProp || generatedId;\n\n\t// Use a heuristic to understand if the component is being used in controlled\n\t// or uncontrolled mode, and consequently:\n\t// - when controlled, convert `undefined` values to `''` (ie. \"no value\")\n\t// - use the `value` prop as the `defaultValue` when uncontrolled\n\tconst { value, defaultValue } =\n\t\tuseComputeControlledOrUncontrolledValue( valueProp );\n\n\tconst [ selectedValue, setSelectedValue ] = useControlledValue( {\n\t\tdefaultValue,\n\t\tvalue,\n\t\tonChange,\n\t} );\n\n\tconst groupContextValue = useMemo(\n\t\t(): ToggleGroupControlContextProps => ( {\n\t\t\tbaseId,\n\t\t\tvalue: selectedValue,\n\t\t\tsetValue: setSelectedValue,\n\t\t\tisBlock: ! isAdaptiveWidth,\n\t\t\tisDeselectable: true,\n\t\t\tsize,\n\t\t\tsetSelectedElement,\n\t\t} ),\n\t\t[\n\t\t\tbaseId,\n\t\t\tselectedValue,\n\t\t\tsetSelectedValue,\n\t\t\tisAdaptiveWidth,\n\t\t\tsize,\n\t\t\tsetSelectedElement,\n\t\t]\n\t);\n\n\treturn (\n\t\t<ToggleGroupControlContext.Provider value={ groupContextValue }>\n\t\t\t<View\n\t\t\t\taria-label={ label }\n\t\t\t\t{ ...otherProps }\n\t\t\t\tref={ forwardedRef }\n\t\t\t\trole=\"group\"\n\t\t\t>\n\t\t\t\t{ children }\n\t\t\t</View>\n\t\t</ToggleGroupControlContext.Provider>\n\t);\n}\n\nexport const ToggleGroupControlAsButtonGroup = forwardRef(\n\tUnforwardedToggleGroupControlAsButtonGroup\n);\n"],"mappings":";;;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAKA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AAEA,IAAAI,QAAA,GAAAC,sBAAA,CAAAL,OAAA;AACA,IAAAM,OAAA,GAAAN,OAAA;AAAkE,IAAAO,WAAA,GAAAP,OAAA;AAblE;AACA;AACA;;AAIA;AACA;AACA;;AAWA,SAASQ,0CAA0CA,CAClD;EACCC,QAAQ;EACRC,eAAe;EACfC,KAAK;EACLC,QAAQ;EACRC,IAAI;EACJC,KAAK,EAAEC,SAAS;EAChBC,EAAE,EAAEC,MAAM;EACVC,kBAAkB;EAClB,GAAGC;AAKJ,CAAC,EACDC,YAAkD,EACjD;EACD,MAAMC,WAAW,GAAG,IAAAC,sBAAa,EAChCC,+BAA+B,EAC/B,sCACD,CAAC;EACD,MAAMC,MAAM,GAAGP,MAAM,IAAII,WAAW;;EAEpC;EACA;EACA;EACA;EACA,MAAM;IAAEP,KAAK;IAAEW;EAAa,CAAC,GAC5B,IAAAC,+CAAuC,EAAEX,SAAU,CAAC;EAErD,MAAM,CAAEY,aAAa,EAAEC,gBAAgB,CAAE,GAAG,IAAAC,yBAAkB,EAAE;IAC/DJ,YAAY;IACZX,KAAK;IACLF;EACD,CAAE,CAAC;EAEH,MAAMkB,iBAAiB,GAAG,IAAAC,gBAAO,EAChC,OAAwC;IACvCP,MAAM;IACNV,KAAK,EAAEa,aAAa;IACpBK,QAAQ,EAAEJ,gBAAgB;IAC1BK,OAAO,EAAE,CAAEvB,eAAe;IAC1BwB,cAAc,EAAE,IAAI;IACpBrB,IAAI;IACJK;EACD,CAAC,CAAE,EACH,CACCM,MAAM,EACNG,aAAa,EACbC,gBAAgB,EAChBlB,eAAe,EACfG,IAAI,EACJK,kBAAkB,CAEpB,CAAC;EAED,oBACC,IAAAX,WAAA,CAAA4B,GAAA,EAAC/B,QAAA,CAAAgC,OAAyB,CAACC,QAAQ;IAACvB,KAAK,EAAGgB,iBAAmB;IAAArB,QAAA,eAC9D,IAAAF,WAAA,CAAA4B,GAAA,EAACjC,KAAA,CAAAoC,IAAI;MACJ,cAAa3B,KAAO;MAAA,GACfQ,UAAU;MACfoB,GAAG,EAAGnB,YAAc;MACpBoB,IAAI,EAAC,OAAO;MAAA/B,QAAA,EAEVA;IAAQ,CACL;EAAC,CAC4B,CAAC;AAEvC;AAEO,MAAMc,+BAA+B,GAAAkB,OAAA,CAAAlB,+BAAA,GAAG,IAAAmB,mBAAU,EACxDlC,0CACD,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_compose","require","_element","_view","_utils","_context","_interopRequireDefault","_utils2","_jsxRuntime","UnforwardedToggleGroupControlAsButtonGroup","children","isAdaptiveWidth","label","onChange","size","value","valueProp","id","idProp","setSelectedElement","otherProps","forwardedRef","generatedId","useInstanceId","ToggleGroupControlAsButtonGroup","baseId","defaultValue","useComputeControlledOrUncontrolledValue","selectedValue","setSelectedValue","useControlledValue","groupContextValue","useMemo","setValue","isBlock","isDeselectable","jsx","default","Provider","View","ref","role","exports","forwardRef"],"sources":["@wordpress/components/src/toggle-group-control/toggle-group-control/as-button-group.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useInstanceId } from '@wordpress/compose';\nimport { forwardRef, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { View } from '../../view';\nimport { useControlledValue } from '../../utils';\nimport type { WordPressComponentProps } from '../../context';\nimport ToggleGroupControlContext from '../context';\nimport { useComputeControlledOrUncontrolledValue } from './utils';\nimport type {\n\tToggleGroupControlMainControlProps,\n\tToggleGroupControlContextProps,\n} from '../types';\n\nfunction UnforwardedToggleGroupControlAsButtonGroup(\n\t{\n\t\tchildren,\n\t\tisAdaptiveWidth,\n\t\tlabel,\n\t\tonChange,\n\t\tsize,\n\t\tvalue: valueProp,\n\t\tid: idProp,\n\t\tsetSelectedElement,\n\t\t...otherProps\n\t}: WordPressComponentProps<\n\t\tToggleGroupControlMainControlProps,\n\t\t'div',\n\t\tfalse\n\t>,\n\tforwardedRef: React.ForwardedRef< HTMLDivElement >\n) {\n\tconst generatedId = useInstanceId(\n\t\tToggleGroupControlAsButtonGroup,\n\t\t'toggle-group-control-as-button-group'\n\t);\n\tconst baseId = idProp || generatedId;\n\n\t// Use a heuristic to understand if the component is being used in controlled\n\t// or uncontrolled mode, and consequently:\n\t// - when controlled, convert `undefined` values to `''` (ie. \"no value\")\n\t// - use the `value` prop as the `defaultValue` when uncontrolled\n\tconst { value, defaultValue } =\n\t\tuseComputeControlledOrUncontrolledValue( valueProp );\n\n\tconst [ selectedValue, setSelectedValue ] = useControlledValue<\n\t\ttypeof value\n\t>( {\n\t\tdefaultValue,\n\t\tvalue,\n\t\tonChange,\n\t} );\n\n\tconst groupContextValue = useMemo(\n\t\t(): ToggleGroupControlContextProps => ( {\n\t\t\tbaseId,\n\t\t\tvalue: selectedValue,\n\t\t\tsetValue: setSelectedValue,\n\t\t\tisBlock: ! isAdaptiveWidth,\n\t\t\tisDeselectable: true,\n\t\t\tsize,\n\t\t\tsetSelectedElement,\n\t\t} ),\n\t\t[\n\t\t\tbaseId,\n\t\t\tselectedValue,\n\t\t\tsetSelectedValue,\n\t\t\tisAdaptiveWidth,\n\t\t\tsize,\n\t\t\tsetSelectedElement,\n\t\t]\n\t);\n\n\treturn (\n\t\t<ToggleGroupControlContext.Provider value={ groupContextValue }>\n\t\t\t<View\n\t\t\t\taria-label={ label }\n\t\t\t\t{ ...otherProps }\n\t\t\t\tref={ forwardedRef }\n\t\t\t\trole=\"group\"\n\t\t\t>\n\t\t\t\t{ children }\n\t\t\t</View>\n\t\t</ToggleGroupControlContext.Provider>\n\t);\n}\n\nexport const ToggleGroupControlAsButtonGroup = forwardRef(\n\tUnforwardedToggleGroupControlAsButtonGroup\n);\n"],"mappings":";;;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAKA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AAEA,IAAAI,QAAA,GAAAC,sBAAA,CAAAL,OAAA;AACA,IAAAM,OAAA,GAAAN,OAAA;AAAkE,IAAAO,WAAA,GAAAP,OAAA;AAblE;AACA;AACA;;AAIA;AACA;AACA;;AAWA,SAASQ,0CAA0CA,CAClD;EACCC,QAAQ;EACRC,eAAe;EACfC,KAAK;EACLC,QAAQ;EACRC,IAAI;EACJC,KAAK,EAAEC,SAAS;EAChBC,EAAE,EAAEC,MAAM;EACVC,kBAAkB;EAClB,GAAGC;AAKJ,CAAC,EACDC,YAAkD,EACjD;EACD,MAAMC,WAAW,GAAG,IAAAC,sBAAa,EAChCC,+BAA+B,EAC/B,sCACD,CAAC;EACD,MAAMC,MAAM,GAAGP,MAAM,IAAII,WAAW;;EAEpC;EACA;EACA;EACA;EACA,MAAM;IAAEP,KAAK;IAAEW;EAAa,CAAC,GAC5B,IAAAC,+CAAuC,EAAEX,SAAU,CAAC;EAErD,MAAM,CAAEY,aAAa,EAAEC,gBAAgB,CAAE,GAAG,IAAAC,yBAAkB,EAE3D;IACFJ,YAAY;IACZX,KAAK;IACLF;EACD,CAAE,CAAC;EAEH,MAAMkB,iBAAiB,GAAG,IAAAC,gBAAO,EAChC,OAAwC;IACvCP,MAAM;IACNV,KAAK,EAAEa,aAAa;IACpBK,QAAQ,EAAEJ,gBAAgB;IAC1BK,OAAO,EAAE,CAAEvB,eAAe;IAC1BwB,cAAc,EAAE,IAAI;IACpBrB,IAAI;IACJK;EACD,CAAC,CAAE,EACH,CACCM,MAAM,EACNG,aAAa,EACbC,gBAAgB,EAChBlB,eAAe,EACfG,IAAI,EACJK,kBAAkB,CAEpB,CAAC;EAED,oBACC,IAAAX,WAAA,CAAA4B,GAAA,EAAC/B,QAAA,CAAAgC,OAAyB,CAACC,QAAQ;IAACvB,KAAK,EAAGgB,iBAAmB;IAAArB,QAAA,eAC9D,IAAAF,WAAA,CAAA4B,GAAA,EAACjC,KAAA,CAAAoC,IAAI;MACJ,cAAa3B,KAAO;MAAA,GACfQ,UAAU;MACfoB,GAAG,EAAGnB,YAAc;MACpBoB,IAAI,EAAC,OAAO;MAAA/B,QAAA,EAEVA;IAAQ,CACL;EAAC,CAC4B,CAAC;AAEvC;AAEO,MAAMc,+BAA+B,GAAAkB,OAAA,CAAAlB,+BAAA,GAAG,IAAAmB,mBAAU,EACxDlC,0CACD,CAAC","ignoreList":[]}
@@ -27,15 +27,19 @@ function useControlledValue({
27
27
  const initialValue = hasValue ? valueProp : defaultValue;
28
28
  const [state, setState] = (0, _element.useState)(initialValue);
29
29
  const value = hasValue ? valueProp : state;
30
+ const uncontrolledSetValue = (0, _element.useCallback)((nextValue, ...args) => {
31
+ setState(nextValue);
32
+ onChange?.(nextValue, ...args);
33
+ }, [onChange]);
30
34
  let setValue;
31
35
  if (hasValue && typeof onChange === 'function') {
36
+ // Controlled mode.
32
37
  setValue = onChange;
33
38
  } else if (!hasValue && typeof onChange === 'function') {
34
- setValue = nextValue => {
35
- onChange(nextValue);
36
- setState(nextValue);
37
- };
39
+ // Uncontrolled mode, plus forwarding to the onChange prop.
40
+ setValue = uncontrolledSetValue;
38
41
  } else {
42
+ // Uncontrolled mode, only update internal state.
39
43
  setValue = setState;
40
44
  }
41
45
  return [value, setValue];
@@ -1 +1 @@
1
- {"version":3,"names":["_element","require","useControlledValue","defaultValue","onChange","value","valueProp","hasValue","initialValue","state","setState","useState","setValue","nextValue"],"sources":["@wordpress/components/src/utils/hooks/use-controlled-value.ts"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useState } from '@wordpress/element';\n\ntype Props< T > = {\n\tdefaultValue?: T;\n\tvalue?: T;\n\tonChange?: ( value: T ) => void;\n};\n\n/**\n * Simplified and improved implementation of useControlledState.\n *\n * @param props\n * @param props.defaultValue\n * @param props.value\n * @param props.onChange\n * @return The controlled value and the value setter.\n */\nexport function useControlledValue< T >( {\n\tdefaultValue,\n\tonChange,\n\tvalue: valueProp,\n}: Props< T > ) {\n\tconst hasValue = typeof valueProp !== 'undefined';\n\tconst initialValue = hasValue ? valueProp : defaultValue;\n\tconst [ state, setState ] = useState( initialValue );\n\tconst value = hasValue ? valueProp : state;\n\n\tlet setValue: ( nextValue: T ) => void;\n\tif ( hasValue && typeof onChange === 'function' ) {\n\t\tsetValue = onChange;\n\t} else if ( ! hasValue && typeof onChange === 'function' ) {\n\t\tsetValue = ( nextValue ) => {\n\t\t\tonChange( nextValue );\n\t\t\tsetState( nextValue );\n\t\t};\n\t} else {\n\t\tsetValue = setState;\n\t}\n\n\treturn [ value, setValue as typeof setState ] as const;\n}\n"],"mappings":";;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AAHA;AACA;AACA;;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,kBAAkBA,CAAO;EACxCC,YAAY;EACZC,QAAQ;EACRC,KAAK,EAAEC;AACI,CAAC,EAAG;EACf,MAAMC,QAAQ,GAAG,OAAOD,SAAS,KAAK,WAAW;EACjD,MAAME,YAAY,GAAGD,QAAQ,GAAGD,SAAS,GAAGH,YAAY;EACxD,MAAM,CAAEM,KAAK,EAAEC,QAAQ,CAAE,GAAG,IAAAC,iBAAQ,EAAEH,YAAa,CAAC;EACpD,MAAMH,KAAK,GAAGE,QAAQ,GAAGD,SAAS,GAAGG,KAAK;EAE1C,IAAIG,QAAkC;EACtC,IAAKL,QAAQ,IAAI,OAAOH,QAAQ,KAAK,UAAU,EAAG;IACjDQ,QAAQ,GAAGR,QAAQ;EACpB,CAAC,MAAM,IAAK,CAAEG,QAAQ,IAAI,OAAOH,QAAQ,KAAK,UAAU,EAAG;IAC1DQ,QAAQ,GAAKC,SAAS,IAAM;MAC3BT,QAAQ,CAAES,SAAU,CAAC;MACrBH,QAAQ,CAAEG,SAAU,CAAC;IACtB,CAAC;EACF,CAAC,MAAM;IACND,QAAQ,GAAGF,QAAQ;EACpB;EAEA,OAAO,CAAEL,KAAK,EAAEO,QAAQ,CAAqB;AAC9C","ignoreList":[]}
1
+ {"version":3,"names":["_element","require","useControlledValue","defaultValue","onChange","value","valueProp","hasValue","initialValue","state","setState","useState","uncontrolledSetValue","useCallback","nextValue","args","setValue"],"sources":["@wordpress/components/src/utils/hooks/use-controlled-value.ts"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useCallback, useState } from '@wordpress/element';\n\ntype Props< T > = {\n\tdefaultValue?: T;\n\tvalue?: T;\n\tonChange?: ( value: T, ...args: any[] ) => void;\n};\n\n/**\n * Simplified and improved implementation of useControlledState.\n *\n * @param props\n * @param props.defaultValue\n * @param props.value\n * @param props.onChange\n * @return The controlled value and the value setter.\n */\nexport function useControlledValue< T >( {\n\tdefaultValue,\n\tonChange,\n\tvalue: valueProp,\n}: Props< T > ) {\n\tconst hasValue = typeof valueProp !== 'undefined';\n\tconst initialValue = hasValue ? valueProp : defaultValue;\n\tconst [ state, setState ] = useState( initialValue );\n\tconst value = hasValue ? valueProp : state;\n\n\tconst uncontrolledSetValue = useCallback(\n\t\t( nextValue: T, ...args: any[] ) => {\n\t\t\tsetState( nextValue );\n\t\t\tonChange?.( nextValue, ...args );\n\t\t},\n\t\t[ onChange ]\n\t);\n\n\tlet setValue: typeof onChange;\n\tif ( hasValue && typeof onChange === 'function' ) {\n\t\t// Controlled mode.\n\t\tsetValue = onChange;\n\t} else if ( ! hasValue && typeof onChange === 'function' ) {\n\t\t// Uncontrolled mode, plus forwarding to the onChange prop.\n\t\tsetValue = uncontrolledSetValue;\n\t} else {\n\t\t// Uncontrolled mode, only update internal state.\n\t\tsetValue = setState;\n\t}\n\n\treturn [ value, setValue ] as const;\n}\n"],"mappings":";;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AAHA;AACA;AACA;;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,kBAAkBA,CAAO;EACxCC,YAAY;EACZC,QAAQ;EACRC,KAAK,EAAEC;AACI,CAAC,EAAG;EACf,MAAMC,QAAQ,GAAG,OAAOD,SAAS,KAAK,WAAW;EACjD,MAAME,YAAY,GAAGD,QAAQ,GAAGD,SAAS,GAAGH,YAAY;EACxD,MAAM,CAAEM,KAAK,EAAEC,QAAQ,CAAE,GAAG,IAAAC,iBAAQ,EAAEH,YAAa,CAAC;EACpD,MAAMH,KAAK,GAAGE,QAAQ,GAAGD,SAAS,GAAGG,KAAK;EAE1C,MAAMG,oBAAoB,GAAG,IAAAC,oBAAW,EACvC,CAAEC,SAAY,EAAE,GAAGC,IAAW,KAAM;IACnCL,QAAQ,CAAEI,SAAU,CAAC;IACrBV,QAAQ,GAAIU,SAAS,EAAE,GAAGC,IAAK,CAAC;EACjC,CAAC,EACD,CAAEX,QAAQ,CACX,CAAC;EAED,IAAIY,QAAyB;EAC7B,IAAKT,QAAQ,IAAI,OAAOH,QAAQ,KAAK,UAAU,EAAG;IACjD;IACAY,QAAQ,GAAGZ,QAAQ;EACpB,CAAC,MAAM,IAAK,CAAEG,QAAQ,IAAI,OAAOH,QAAQ,KAAK,UAAU,EAAG;IAC1D;IACAY,QAAQ,GAAGJ,oBAAoB;EAChC,CAAC,MAAM;IACN;IACAI,QAAQ,GAAGN,QAAQ;EACpB;EAEA,OAAO,CAAEL,KAAK,EAAEW,QAAQ,CAAE;AAC3B","ignoreList":[]}
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.ValidatedCheckboxControl = void 0;
8
+ var _compose = require("@wordpress/compose");
9
+ var _element = require("@wordpress/element");
10
+ var _controlWithError = require("../control-with-error");
11
+ var _checkboxControl = _interopRequireDefault(require("../../checkbox-control"));
12
+ var _jsxRuntime = require("react/jsx-runtime");
13
+ /**
14
+ * WordPress dependencies
15
+ */
16
+
17
+ /**
18
+ * Internal dependencies
19
+ */
20
+
21
+ const UnforwardedValidatedCheckboxControl = ({
22
+ required,
23
+ customValidator,
24
+ onChange,
25
+ markWhenOptional,
26
+ ...restProps
27
+ }, forwardedRef) => {
28
+ const validityTargetRef = (0, _element.useRef)(null);
29
+ const mergedRefs = (0, _compose.useMergeRefs)([forwardedRef, validityTargetRef]);
30
+ const valueRef = (0, _element.useRef)(restProps.checked);
31
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_controlWithError.ControlWithError, {
32
+ required: required,
33
+ markWhenOptional: markWhenOptional,
34
+ ref: mergedRefs,
35
+ customValidator: () => {
36
+ return customValidator?.(valueRef.current);
37
+ },
38
+ getValidityTarget: () => validityTargetRef.current?.querySelector('input[type="checkbox"]'),
39
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_checkboxControl.default, {
40
+ __nextHasNoMarginBottom: true,
41
+ onChange: value => {
42
+ valueRef.current = value;
43
+ onChange?.(value);
44
+ }
45
+ // TODO: Upstream limitation - CheckboxControl doesn't support uncontrolled mode, visually.
46
+ ,
47
+ ...restProps
48
+ })
49
+ });
50
+ };
51
+ const ValidatedCheckboxControl = exports.ValidatedCheckboxControl = (0, _element.forwardRef)(UnforwardedValidatedCheckboxControl);
52
+ //# sourceMappingURL=checkbox-control.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_compose","require","_element","_controlWithError","_checkboxControl","_interopRequireDefault","_jsxRuntime","UnforwardedValidatedCheckboxControl","required","customValidator","onChange","markWhenOptional","restProps","forwardedRef","validityTargetRef","useRef","mergedRefs","useMergeRefs","valueRef","checked","jsx","ControlWithError","ref","current","getValidityTarget","querySelector","children","default","__nextHasNoMarginBottom","value","ValidatedCheckboxControl","exports","forwardRef"],"sources":["@wordpress/components/src/validated-form-controls/components/checkbox-control.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMergeRefs } from '@wordpress/compose';\nimport { forwardRef, useRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { ControlWithError } from '../control-with-error';\nimport type { ValidatedControlProps } from './types';\nimport CheckboxControl from '../../checkbox-control';\nimport type { CheckboxControlProps } from '../../checkbox-control/types';\n\ntype Value = CheckboxControlProps[ 'checked' ];\n\nconst UnforwardedValidatedCheckboxControl = (\n\t{\n\t\trequired,\n\t\tcustomValidator,\n\t\tonChange,\n\t\tmarkWhenOptional,\n\t\t...restProps\n\t}: Omit<\n\t\tReact.ComponentProps< typeof CheckboxControl >,\n\t\t'__nextHasNoMarginBottom'\n\t> &\n\t\tValidatedControlProps< Value >,\n\tforwardedRef: React.ForwardedRef< HTMLInputElement >\n) => {\n\tconst validityTargetRef = useRef< HTMLDivElement >( null );\n\tconst mergedRefs = useMergeRefs( [ forwardedRef, validityTargetRef ] );\n\tconst valueRef = useRef< Value >( restProps.checked );\n\n\treturn (\n\t\t<ControlWithError\n\t\t\trequired={ required }\n\t\t\tmarkWhenOptional={ markWhenOptional }\n\t\t\tref={ mergedRefs }\n\t\t\tcustomValidator={ () => {\n\t\t\t\treturn customValidator?.( valueRef.current );\n\t\t\t} }\n\t\t\tgetValidityTarget={ () =>\n\t\t\t\tvalidityTargetRef.current?.querySelector< HTMLInputElement >(\n\t\t\t\t\t'input[type=\"checkbox\"]'\n\t\t\t\t)\n\t\t\t}\n\t\t>\n\t\t\t<CheckboxControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\tvalueRef.current = value;\n\t\t\t\t\tonChange?.( value );\n\t\t\t\t} }\n\t\t\t\t// TODO: Upstream limitation - CheckboxControl doesn't support uncontrolled mode, visually.\n\t\t\t\t{ ...restProps }\n\t\t\t/>\n\t\t</ControlWithError>\n\t);\n};\n\nexport const ValidatedCheckboxControl = forwardRef(\n\tUnforwardedValidatedCheckboxControl\n);\n"],"mappings":";;;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAKA,IAAAE,iBAAA,GAAAF,OAAA;AAEA,IAAAG,gBAAA,GAAAC,sBAAA,CAAAJ,OAAA;AAAqD,IAAAK,WAAA,GAAAL,OAAA;AAXrD;AACA;AACA;;AAIA;AACA;AACA;;AAQA,MAAMM,mCAAmC,GAAGA,CAC3C;EACCC,QAAQ;EACRC,eAAe;EACfC,QAAQ;EACRC,gBAAgB;EAChB,GAAGC;AAK0B,CAAC,EAC/BC,YAAoD,KAChD;EACJ,MAAMC,iBAAiB,GAAG,IAAAC,eAAM,EAAoB,IAAK,CAAC;EAC1D,MAAMC,UAAU,GAAG,IAAAC,qBAAY,EAAE,CAAEJ,YAAY,EAAEC,iBAAiB,CAAG,CAAC;EACtE,MAAMI,QAAQ,GAAG,IAAAH,eAAM,EAAWH,SAAS,CAACO,OAAQ,CAAC;EAErD,oBACC,IAAAb,WAAA,CAAAc,GAAA,EAACjB,iBAAA,CAAAkB,gBAAgB;IAChBb,QAAQ,EAAGA,QAAU;IACrBG,gBAAgB,EAAGA,gBAAkB;IACrCW,GAAG,EAAGN,UAAY;IAClBP,eAAe,EAAGA,CAAA,KAAM;MACvB,OAAOA,eAAe,GAAIS,QAAQ,CAACK,OAAQ,CAAC;IAC7C,CAAG;IACHC,iBAAiB,EAAGA,CAAA,KACnBV,iBAAiB,CAACS,OAAO,EAAEE,aAAa,CACvC,wBACD,CACA;IAAAC,QAAA,eAED,IAAApB,WAAA,CAAAc,GAAA,EAAChB,gBAAA,CAAAuB,OAAe;MACfC,uBAAuB;MACvBlB,QAAQ,EAAKmB,KAAK,IAAM;QACvBX,QAAQ,CAACK,OAAO,GAAGM,KAAK;QACxBnB,QAAQ,GAAImB,KAAM,CAAC;MACpB;MACA;MAAA;MAAA,GACKjB;IAAS,CACd;EAAC,CACe,CAAC;AAErB,CAAC;AAEM,MAAMkB,wBAAwB,GAAAC,OAAA,CAAAD,wBAAA,GAAG,IAAAE,mBAAU,EACjDzB,mCACD,CAAC","ignoreList":[]}
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.ValidatedComboboxControl = void 0;
8
+ var _compose = require("@wordpress/compose");
9
+ var _element = require("@wordpress/element");
10
+ var _controlWithError = require("../control-with-error");
11
+ var _comboboxControl = _interopRequireDefault(require("../../combobox-control"));
12
+ var _jsxRuntime = require("react/jsx-runtime");
13
+ /**
14
+ * WordPress dependencies
15
+ */
16
+
17
+ /**
18
+ * Internal dependencies
19
+ */
20
+
21
+ const UnforwardedValidatedComboboxControl = ({
22
+ required,
23
+ customValidator,
24
+ onChange,
25
+ markWhenOptional,
26
+ ...restProps
27
+ }, forwardedRef) => {
28
+ const validityTargetRef = (0, _element.useRef)(null);
29
+ const mergedRefs = (0, _compose.useMergeRefs)([forwardedRef, validityTargetRef]);
30
+ const valueRef = (0, _element.useRef)(restProps.value);
31
+
32
+ // TODO: Upstream limitation - The `required` attribute is not passed down to the input,
33
+ // so we need to set it manually.
34
+ (0, _element.useEffect)(() => {
35
+ const input = validityTargetRef.current?.querySelector('input[role="combobox"]');
36
+ if (input) {
37
+ input.required = required !== null && required !== void 0 ? required : false;
38
+ }
39
+ }, [required]);
40
+ return (
41
+ /*#__PURE__*/
42
+ // TODO: Bug - Missing value error is not cleared immediately on change, waits for blur.
43
+ (0, _jsxRuntime.jsx)(_controlWithError.ControlWithError, {
44
+ required: required,
45
+ markWhenOptional: markWhenOptional,
46
+ ref: mergedRefs,
47
+ customValidator: () => {
48
+ return customValidator?.(valueRef.current);
49
+ },
50
+ getValidityTarget: () => validityTargetRef.current?.querySelector('input[role="combobox"]'),
51
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_comboboxControl.default, {
52
+ __nextHasNoMarginBottom: true,
53
+ __next40pxDefaultSize: true,
54
+ ...restProps,
55
+ onChange: value => {
56
+ valueRef.current = value;
57
+ onChange?.(value);
58
+ }
59
+ })
60
+ })
61
+ );
62
+ };
63
+ const ValidatedComboboxControl = exports.ValidatedComboboxControl = (0, _element.forwardRef)(UnforwardedValidatedComboboxControl);
64
+ //# sourceMappingURL=combobox-control.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_compose","require","_element","_controlWithError","_comboboxControl","_interopRequireDefault","_jsxRuntime","UnforwardedValidatedComboboxControl","required","customValidator","onChange","markWhenOptional","restProps","forwardedRef","validityTargetRef","useRef","mergedRefs","useMergeRefs","valueRef","value","useEffect","input","current","querySelector","jsx","ControlWithError","ref","getValidityTarget","children","default","__nextHasNoMarginBottom","__next40pxDefaultSize","ValidatedComboboxControl","exports","forwardRef"],"sources":["@wordpress/components/src/validated-form-controls/components/combobox-control.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMergeRefs } from '@wordpress/compose';\nimport { forwardRef, useEffect, useRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { ControlWithError } from '../control-with-error';\nimport type { ValidatedControlProps } from './types';\nimport ComboboxControl from '../../combobox-control';\nimport type { ComboboxControlProps } from '../../combobox-control/types';\n\ntype Value = ComboboxControlProps[ 'value' ];\n\nconst UnforwardedValidatedComboboxControl = (\n\t{\n\t\trequired,\n\t\tcustomValidator,\n\t\tonChange,\n\t\tmarkWhenOptional,\n\t\t...restProps\n\t}: Omit<\n\t\tReact.ComponentProps< typeof ComboboxControl >,\n\t\t'__next40pxDefaultSize' | '__nextHasNoMarginBottom'\n\t> &\n\t\tValidatedControlProps< Value >,\n\tforwardedRef: React.ForwardedRef< HTMLInputElement >\n) => {\n\tconst validityTargetRef = useRef< HTMLInputElement >( null );\n\tconst mergedRefs = useMergeRefs( [ forwardedRef, validityTargetRef ] );\n\tconst valueRef = useRef< Value >( restProps.value );\n\n\t// TODO: Upstream limitation - The `required` attribute is not passed down to the input,\n\t// so we need to set it manually.\n\tuseEffect( () => {\n\t\tconst input =\n\t\t\tvalidityTargetRef.current?.querySelector< HTMLInputElement >(\n\t\t\t\t'input[role=\"combobox\"]'\n\t\t\t);\n\t\tif ( input ) {\n\t\t\tinput.required = required ?? false;\n\t\t}\n\t}, [ required ] );\n\n\treturn (\n\t\t// TODO: Bug - Missing value error is not cleared immediately on change, waits for blur.\n\t\t<ControlWithError\n\t\t\trequired={ required }\n\t\t\tmarkWhenOptional={ markWhenOptional }\n\t\t\tref={ mergedRefs }\n\t\t\tcustomValidator={ () => {\n\t\t\t\treturn customValidator?.( valueRef.current );\n\t\t\t} }\n\t\t\tgetValidityTarget={ () =>\n\t\t\t\tvalidityTargetRef.current?.querySelector< HTMLInputElement >(\n\t\t\t\t\t'input[role=\"combobox\"]'\n\t\t\t\t)\n\t\t\t}\n\t\t>\n\t\t\t<ComboboxControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t__next40pxDefaultSize\n\t\t\t\t{ ...restProps }\n\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\tvalueRef.current = value;\n\t\t\t\t\tonChange?.( value );\n\t\t\t\t} }\n\t\t\t/>\n\t\t</ControlWithError>\n\t);\n};\n\nexport const ValidatedComboboxControl = forwardRef(\n\tUnforwardedValidatedComboboxControl\n);\n"],"mappings":";;;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAKA,IAAAE,iBAAA,GAAAF,OAAA;AAEA,IAAAG,gBAAA,GAAAC,sBAAA,CAAAJ,OAAA;AAAqD,IAAAK,WAAA,GAAAL,OAAA;AAXrD;AACA;AACA;;AAIA;AACA;AACA;;AAQA,MAAMM,mCAAmC,GAAGA,CAC3C;EACCC,QAAQ;EACRC,eAAe;EACfC,QAAQ;EACRC,gBAAgB;EAChB,GAAGC;AAK0B,CAAC,EAC/BC,YAAoD,KAChD;EACJ,MAAMC,iBAAiB,GAAG,IAAAC,eAAM,EAAsB,IAAK,CAAC;EAC5D,MAAMC,UAAU,GAAG,IAAAC,qBAAY,EAAE,CAAEJ,YAAY,EAAEC,iBAAiB,CAAG,CAAC;EACtE,MAAMI,QAAQ,GAAG,IAAAH,eAAM,EAAWH,SAAS,CAACO,KAAM,CAAC;;EAEnD;EACA;EACA,IAAAC,kBAAS,EAAE,MAAM;IAChB,MAAMC,KAAK,GACVP,iBAAiB,CAACQ,OAAO,EAAEC,aAAa,CACvC,wBACD,CAAC;IACF,IAAKF,KAAK,EAAG;MACZA,KAAK,CAACb,QAAQ,GAAGA,QAAQ,aAARA,QAAQ,cAARA,QAAQ,GAAI,KAAK;IACnC;EACD,CAAC,EAAE,CAAEA,QAAQ,CAAG,CAAC;EAEjB;IAAA;IACC;IACA,IAAAF,WAAA,CAAAkB,GAAA,EAACrB,iBAAA,CAAAsB,gBAAgB;MAChBjB,QAAQ,EAAGA,QAAU;MACrBG,gBAAgB,EAAGA,gBAAkB;MACrCe,GAAG,EAAGV,UAAY;MAClBP,eAAe,EAAGA,CAAA,KAAM;QACvB,OAAOA,eAAe,GAAIS,QAAQ,CAACI,OAAQ,CAAC;MAC7C,CAAG;MACHK,iBAAiB,EAAGA,CAAA,KACnBb,iBAAiB,CAACQ,OAAO,EAAEC,aAAa,CACvC,wBACD,CACA;MAAAK,QAAA,eAED,IAAAtB,WAAA,CAAAkB,GAAA,EAACpB,gBAAA,CAAAyB,OAAe;QACfC,uBAAuB;QACvBC,qBAAqB;QAAA,GAChBnB,SAAS;QACdF,QAAQ,EAAKS,KAAK,IAAM;UACvBD,QAAQ,CAACI,OAAO,GAAGH,KAAK;UACxBT,QAAQ,GAAIS,KAAM,CAAC;QACpB;MAAG,CACH;IAAC,CACe;EAAC;AAErB,CAAC;AAEM,MAAMa,wBAAwB,GAAAC,OAAA,CAAAD,wBAAA,GAAG,IAAAE,mBAAU,EACjD3B,mCACD,CAAC","ignoreList":[]}
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.ValidatedCustomSelectControl = void 0;
8
+ var _element = require("@wordpress/element");
9
+ var _controlWithError = require("../control-with-error");
10
+ var _customSelectControl = _interopRequireDefault(require("../../custom-select-control"));
11
+ var _jsxRuntime = require("react/jsx-runtime");
12
+ /**
13
+ * WordPress dependencies
14
+ */
15
+
16
+ /**
17
+ * Internal dependencies
18
+ */
19
+
20
+ const UnforwardedValidatedCustomSelectControl = ({
21
+ required,
22
+ customValidator,
23
+ onChange,
24
+ markWhenOptional,
25
+ ...restProps
26
+ }, forwardedRef) => {
27
+ const validityTargetRef = (0, _element.useRef)(null);
28
+ const valueRef = (0, _element.useRef)(restProps.value);
29
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
30
+ className: "components-validated-control__wrapper-with-error-delegate",
31
+ ref: forwardedRef,
32
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_controlWithError.ControlWithError, {
33
+ required: required,
34
+ markWhenOptional: markWhenOptional,
35
+ customValidator: () => {
36
+ return customValidator?.(valueRef.current);
37
+ },
38
+ getValidityTarget: () => validityTargetRef.current,
39
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_customSelectControl.default
40
+ // TODO: Upstream limitation - Required isn't passed down correctly,
41
+ // so it needs to be set on a delegate element.
42
+ , {
43
+ __next40pxDefaultSize: true,
44
+ onChange: value => {
45
+ valueRef.current = value.selectedItem;
46
+ onChange?.(value);
47
+ },
48
+ ...restProps
49
+ })
50
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("select", {
51
+ className: "components-validated-control__error-delegate",
52
+ ref: validityTargetRef,
53
+ required: required,
54
+ tabIndex: -1,
55
+ value: restProps.value?.key ? 'hasvalue' : '',
56
+ onChange: () => {},
57
+ onFocus: e => {
58
+ e.target.previousElementSibling?.querySelector('[role="combobox"]')?.focus();
59
+ },
60
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("option", {
61
+ value: "",
62
+ children: "No selection"
63
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("option", {
64
+ value: "hasvalue",
65
+ children: "Has selection"
66
+ })]
67
+ })]
68
+ });
69
+ };
70
+ const ValidatedCustomSelectControl = exports.ValidatedCustomSelectControl = (0, _element.forwardRef)(UnforwardedValidatedCustomSelectControl);
71
+ //# sourceMappingURL=custom-select-control.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_element","require","_controlWithError","_customSelectControl","_interopRequireDefault","_jsxRuntime","UnforwardedValidatedCustomSelectControl","required","customValidator","onChange","markWhenOptional","restProps","forwardedRef","validityTargetRef","useRef","valueRef","value","jsxs","className","ref","children","jsx","ControlWithError","current","getValidityTarget","default","__next40pxDefaultSize","selectedItem","tabIndex","key","onFocus","e","target","previousElementSibling","querySelector","focus","ValidatedCustomSelectControl","exports","forwardRef"],"sources":["@wordpress/components/src/validated-form-controls/components/custom-select-control.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { forwardRef, useRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { ControlWithError } from '../control-with-error';\nimport type { ValidatedControlProps } from './types';\nimport CustomSelectControl from '../../custom-select-control';\nimport type {\n\tCustomSelectOption,\n\tCustomSelectProps,\n} from '../../custom-select-control/types';\n\ntype CustomSelectControlProps = CustomSelectProps< CustomSelectOption >;\n\ntype Value = CustomSelectControlProps[ 'value' ];\n\nconst UnforwardedValidatedCustomSelectControl = (\n\t{\n\t\trequired,\n\t\tcustomValidator,\n\t\tonChange,\n\t\tmarkWhenOptional,\n\t\t...restProps\n\t}: Omit<\n\t\tReact.ComponentProps< typeof CustomSelectControl >,\n\t\t'__next40pxDefaultSize'\n\t> &\n\t\tValidatedControlProps< Value >,\n\tforwardedRef: React.ForwardedRef< HTMLDivElement >\n) => {\n\tconst validityTargetRef = useRef< HTMLSelectElement >( null );\n\tconst valueRef = useRef< Value >( restProps.value );\n\n\treturn (\n\t\t<div\n\t\t\tclassName=\"components-validated-control__wrapper-with-error-delegate\"\n\t\t\tref={ forwardedRef }\n\t\t>\n\t\t\t<ControlWithError\n\t\t\t\trequired={ required }\n\t\t\t\tmarkWhenOptional={ markWhenOptional }\n\t\t\t\tcustomValidator={ () => {\n\t\t\t\t\treturn customValidator?.( valueRef.current );\n\t\t\t\t} }\n\t\t\t\tgetValidityTarget={ () => validityTargetRef.current }\n\t\t\t>\n\t\t\t\t<CustomSelectControl\n\t\t\t\t\t// TODO: Upstream limitation - Required isn't passed down correctly,\n\t\t\t\t\t// so it needs to be set on a delegate element.\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\tvalueRef.current = value.selectedItem;\n\t\t\t\t\t\tonChange?.( value );\n\t\t\t\t\t} }\n\t\t\t\t\t{ ...restProps }\n\t\t\t\t/>\n\t\t\t</ControlWithError>\n\t\t\t<select\n\t\t\t\tclassName=\"components-validated-control__error-delegate\"\n\t\t\t\tref={ validityTargetRef }\n\t\t\t\trequired={ required }\n\t\t\t\ttabIndex={ -1 }\n\t\t\t\tvalue={ restProps.value?.key ? 'hasvalue' : '' }\n\t\t\t\tonChange={ () => {} }\n\t\t\t\tonFocus={ ( e ) => {\n\t\t\t\t\te.target.previousElementSibling\n\t\t\t\t\t\t?.querySelector< HTMLButtonElement >(\n\t\t\t\t\t\t\t'[role=\"combobox\"]'\n\t\t\t\t\t\t)\n\t\t\t\t\t\t?.focus();\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<option value=\"\">No selection</option>\n\t\t\t\t<option value=\"hasvalue\">Has selection</option>\n\t\t\t</select>\n\t\t</div>\n\t);\n};\n\nexport const ValidatedCustomSelectControl = forwardRef(\n\tUnforwardedValidatedCustomSelectControl\n);\n"],"mappings":";;;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AAKA,IAAAC,iBAAA,GAAAD,OAAA;AAEA,IAAAE,oBAAA,GAAAC,sBAAA,CAAAH,OAAA;AAA8D,IAAAI,WAAA,GAAAJ,OAAA;AAV9D;AACA;AACA;;AAGA;AACA;AACA;;AAaA,MAAMK,uCAAuC,GAAGA,CAC/C;EACCC,QAAQ;EACRC,eAAe;EACfC,QAAQ;EACRC,gBAAgB;EAChB,GAAGC;AAK0B,CAAC,EAC/BC,YAAkD,KAC9C;EACJ,MAAMC,iBAAiB,GAAG,IAAAC,eAAM,EAAuB,IAAK,CAAC;EAC7D,MAAMC,QAAQ,GAAG,IAAAD,eAAM,EAAWH,SAAS,CAACK,KAAM,CAAC;EAEnD,oBACC,IAAAX,WAAA,CAAAY,IAAA;IACCC,SAAS,EAAC,2DAA2D;IACrEC,GAAG,EAAGP,YAAc;IAAAQ,QAAA,gBAEpB,IAAAf,WAAA,CAAAgB,GAAA,EAACnB,iBAAA,CAAAoB,gBAAgB;MAChBf,QAAQ,EAAGA,QAAU;MACrBG,gBAAgB,EAAGA,gBAAkB;MACrCF,eAAe,EAAGA,CAAA,KAAM;QACvB,OAAOA,eAAe,GAAIO,QAAQ,CAACQ,OAAQ,CAAC;MAC7C,CAAG;MACHC,iBAAiB,EAAGA,CAAA,KAAMX,iBAAiB,CAACU,OAAS;MAAAH,QAAA,eAErD,IAAAf,WAAA,CAAAgB,GAAA,EAAClB,oBAAA,CAAAsB;MACA;MACA;MAAA;QACAC,qBAAqB;QACrBjB,QAAQ,EAAKO,KAAK,IAAM;UACvBD,QAAQ,CAACQ,OAAO,GAAGP,KAAK,CAACW,YAAY;UACrClB,QAAQ,GAAIO,KAAM,CAAC;QACpB,CAAG;QAAA,GACEL;MAAS,CACd;IAAC,CACe,CAAC,eACnB,IAAAN,WAAA,CAAAY,IAAA;MACCC,SAAS,EAAC,8CAA8C;MACxDC,GAAG,EAAGN,iBAAmB;MACzBN,QAAQ,EAAGA,QAAU;MACrBqB,QAAQ,EAAG,CAAC,CAAG;MACfZ,KAAK,EAAGL,SAAS,CAACK,KAAK,EAAEa,GAAG,GAAG,UAAU,GAAG,EAAI;MAChDpB,QAAQ,EAAGA,CAAA,KAAM,CAAC,CAAG;MACrBqB,OAAO,EAAKC,CAAC,IAAM;QAClBA,CAAC,CAACC,MAAM,CAACC,sBAAsB,EAC5BC,aAAa,CACd,mBACD,CAAC,EACCC,KAAK,CAAC,CAAC;MACX,CAAG;MAAAf,QAAA,gBAEH,IAAAf,WAAA,CAAAgB,GAAA;QAAQL,KAAK,EAAC,EAAE;QAAAI,QAAA,EAAC;MAAY,CAAQ,CAAC,eACtC,IAAAf,WAAA,CAAAgB,GAAA;QAAQL,KAAK,EAAC,UAAU;QAAAI,QAAA,EAAC;MAAa,CAAQ,CAAC;IAAA,CACxC,CAAC;EAAA,CACL,CAAC;AAER,CAAC;AAEM,MAAMgB,4BAA4B,GAAAC,OAAA,CAAAD,4BAAA,GAAG,IAAAE,mBAAU,EACrDhC,uCACD,CAAC","ignoreList":[]}
@@ -0,0 +1,138 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _checkboxControl = require("./checkbox-control");
7
+ Object.keys(_checkboxControl).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _checkboxControl[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _checkboxControl[key];
14
+ }
15
+ });
16
+ });
17
+ var _comboboxControl = require("./combobox-control");
18
+ Object.keys(_comboboxControl).forEach(function (key) {
19
+ if (key === "default" || key === "__esModule") return;
20
+ if (key in exports && exports[key] === _comboboxControl[key]) return;
21
+ Object.defineProperty(exports, key, {
22
+ enumerable: true,
23
+ get: function () {
24
+ return _comboboxControl[key];
25
+ }
26
+ });
27
+ });
28
+ var _customSelectControl = require("./custom-select-control");
29
+ Object.keys(_customSelectControl).forEach(function (key) {
30
+ if (key === "default" || key === "__esModule") return;
31
+ if (key in exports && exports[key] === _customSelectControl[key]) return;
32
+ Object.defineProperty(exports, key, {
33
+ enumerable: true,
34
+ get: function () {
35
+ return _customSelectControl[key];
36
+ }
37
+ });
38
+ });
39
+ var _inputControl = require("./input-control");
40
+ Object.keys(_inputControl).forEach(function (key) {
41
+ if (key === "default" || key === "__esModule") return;
42
+ if (key in exports && exports[key] === _inputControl[key]) return;
43
+ Object.defineProperty(exports, key, {
44
+ enumerable: true,
45
+ get: function () {
46
+ return _inputControl[key];
47
+ }
48
+ });
49
+ });
50
+ var _numberControl = require("./number-control");
51
+ Object.keys(_numberControl).forEach(function (key) {
52
+ if (key === "default" || key === "__esModule") return;
53
+ if (key in exports && exports[key] === _numberControl[key]) return;
54
+ Object.defineProperty(exports, key, {
55
+ enumerable: true,
56
+ get: function () {
57
+ return _numberControl[key];
58
+ }
59
+ });
60
+ });
61
+ var _radioControl = require("./radio-control");
62
+ Object.keys(_radioControl).forEach(function (key) {
63
+ if (key === "default" || key === "__esModule") return;
64
+ if (key in exports && exports[key] === _radioControl[key]) return;
65
+ Object.defineProperty(exports, key, {
66
+ enumerable: true,
67
+ get: function () {
68
+ return _radioControl[key];
69
+ }
70
+ });
71
+ });
72
+ var _rangeControl = require("./range-control");
73
+ Object.keys(_rangeControl).forEach(function (key) {
74
+ if (key === "default" || key === "__esModule") return;
75
+ if (key in exports && exports[key] === _rangeControl[key]) return;
76
+ Object.defineProperty(exports, key, {
77
+ enumerable: true,
78
+ get: function () {
79
+ return _rangeControl[key];
80
+ }
81
+ });
82
+ });
83
+ var _selectControl = require("./select-control");
84
+ Object.keys(_selectControl).forEach(function (key) {
85
+ if (key === "default" || key === "__esModule") return;
86
+ if (key in exports && exports[key] === _selectControl[key]) return;
87
+ Object.defineProperty(exports, key, {
88
+ enumerable: true,
89
+ get: function () {
90
+ return _selectControl[key];
91
+ }
92
+ });
93
+ });
94
+ var _textControl = require("./text-control");
95
+ Object.keys(_textControl).forEach(function (key) {
96
+ if (key === "default" || key === "__esModule") return;
97
+ if (key in exports && exports[key] === _textControl[key]) return;
98
+ Object.defineProperty(exports, key, {
99
+ enumerable: true,
100
+ get: function () {
101
+ return _textControl[key];
102
+ }
103
+ });
104
+ });
105
+ var _textareaControl = require("./textarea-control");
106
+ Object.keys(_textareaControl).forEach(function (key) {
107
+ if (key === "default" || key === "__esModule") return;
108
+ if (key in exports && exports[key] === _textareaControl[key]) return;
109
+ Object.defineProperty(exports, key, {
110
+ enumerable: true,
111
+ get: function () {
112
+ return _textareaControl[key];
113
+ }
114
+ });
115
+ });
116
+ var _toggleControl = require("./toggle-control");
117
+ Object.keys(_toggleControl).forEach(function (key) {
118
+ if (key === "default" || key === "__esModule") return;
119
+ if (key in exports && exports[key] === _toggleControl[key]) return;
120
+ Object.defineProperty(exports, key, {
121
+ enumerable: true,
122
+ get: function () {
123
+ return _toggleControl[key];
124
+ }
125
+ });
126
+ });
127
+ var _toggleGroupControl = require("./toggle-group-control");
128
+ Object.keys(_toggleGroupControl).forEach(function (key) {
129
+ if (key === "default" || key === "__esModule") return;
130
+ if (key in exports && exports[key] === _toggleGroupControl[key]) return;
131
+ Object.defineProperty(exports, key, {
132
+ enumerable: true,
133
+ get: function () {
134
+ return _toggleGroupControl[key];
135
+ }
136
+ });
137
+ });
138
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_checkboxControl","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_comboboxControl","_customSelectControl","_inputControl","_numberControl","_radioControl","_rangeControl","_selectControl","_textControl","_textareaControl","_toggleControl","_toggleGroupControl"],"sources":["@wordpress/components/src/validated-form-controls/components/index.ts"],"sourcesContent":["export * from './checkbox-control';\nexport * from './combobox-control';\nexport * from './custom-select-control';\nexport * from './input-control';\nexport * from './number-control';\nexport * from './radio-control';\nexport * from './range-control';\nexport * from './select-control';\nexport * from './text-control';\nexport * from './textarea-control';\nexport * from './toggle-control';\nexport * from './toggle-group-control';\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.ValidatedInputControl = void 0;
8
+ var _element = require("@wordpress/element");
9
+ var _compose = require("@wordpress/compose");
10
+ var _controlWithError = require("../control-with-error");
11
+ var _inputControl = _interopRequireDefault(require("../../input-control"));
12
+ var _jsxRuntime = require("react/jsx-runtime");
13
+ /**
14
+ * WordPress dependencies
15
+ */
16
+
17
+ /**
18
+ * Internal dependencies
19
+ */
20
+
21
+ const UnforwardedValidatedInputControl = ({
22
+ required,
23
+ customValidator,
24
+ onChange,
25
+ markWhenOptional,
26
+ ...restProps
27
+ }, forwardedRef) => {
28
+ const validityTargetRef = (0, _element.useRef)(null);
29
+ const mergedRefs = (0, _compose.useMergeRefs)([forwardedRef, validityTargetRef]);
30
+ const valueRef = (0, _element.useRef)(restProps.value);
31
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_controlWithError.ControlWithError, {
32
+ required: required,
33
+ markWhenOptional: markWhenOptional,
34
+ customValidator: () => {
35
+ return customValidator?.(valueRef.current);
36
+ },
37
+ getValidityTarget: () => validityTargetRef.current,
38
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_inputControl.default, {
39
+ __next40pxDefaultSize: true,
40
+ ref: mergedRefs,
41
+ onChange: (value, ...args) => {
42
+ valueRef.current = value;
43
+ onChange?.(value, ...args);
44
+ },
45
+ ...restProps
46
+ })
47
+ });
48
+ };
49
+ const ValidatedInputControl = exports.ValidatedInputControl = (0, _element.forwardRef)(UnforwardedValidatedInputControl);
50
+ //# sourceMappingURL=input-control.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_element","require","_compose","_controlWithError","_inputControl","_interopRequireDefault","_jsxRuntime","UnforwardedValidatedInputControl","required","customValidator","onChange","markWhenOptional","restProps","forwardedRef","validityTargetRef","useRef","mergedRefs","useMergeRefs","valueRef","value","jsx","ControlWithError","current","getValidityTarget","children","default","__next40pxDefaultSize","ref","args","ValidatedInputControl","exports","forwardRef"],"sources":["@wordpress/components/src/validated-form-controls/components/input-control.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { forwardRef, useRef } from '@wordpress/element';\nimport { useMergeRefs } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { ControlWithError } from '../control-with-error';\nimport type { ValidatedControlProps } from './types';\nimport InputControl from '../../input-control';\nimport type { InputControlProps } from '../../input-control/types';\n\ntype Value = InputControlProps[ 'value' ];\n\nconst UnforwardedValidatedInputControl = (\n\t{\n\t\trequired,\n\t\tcustomValidator,\n\t\tonChange,\n\t\tmarkWhenOptional,\n\t\t...restProps\n\t}: Omit<\n\t\tReact.ComponentProps< typeof InputControl >,\n\t\t'__next40pxDefaultSize'\n\t> &\n\t\tValidatedControlProps< InputControlProps[ 'value' ] >,\n\tforwardedRef: React.ForwardedRef< HTMLInputElement >\n) => {\n\tconst validityTargetRef = useRef< HTMLInputElement >( null );\n\tconst mergedRefs = useMergeRefs( [ forwardedRef, validityTargetRef ] );\n\tconst valueRef = useRef< Value >( restProps.value );\n\n\treturn (\n\t\t<ControlWithError\n\t\t\trequired={ required }\n\t\t\tmarkWhenOptional={ markWhenOptional }\n\t\t\tcustomValidator={ () => {\n\t\t\t\treturn customValidator?.( valueRef.current );\n\t\t\t} }\n\t\t\tgetValidityTarget={ () => validityTargetRef.current }\n\t\t>\n\t\t\t<InputControl\n\t\t\t\t__next40pxDefaultSize\n\t\t\t\tref={ mergedRefs }\n\t\t\t\tonChange={ ( value, ...args ) => {\n\t\t\t\t\tvalueRef.current = value;\n\t\t\t\t\tonChange?.( value, ...args );\n\t\t\t\t} }\n\t\t\t\t{ ...restProps }\n\t\t\t/>\n\t\t</ControlWithError>\n\t);\n};\n\nexport const ValidatedInputControl = forwardRef(\n\tUnforwardedValidatedInputControl\n);\n"],"mappings":";;;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAKA,IAAAE,iBAAA,GAAAF,OAAA;AAEA,IAAAG,aAAA,GAAAC,sBAAA,CAAAJ,OAAA;AAA+C,IAAAK,WAAA,GAAAL,OAAA;AAX/C;AACA;AACA;;AAIA;AACA;AACA;;AAQA,MAAMM,gCAAgC,GAAGA,CACxC;EACCC,QAAQ;EACRC,eAAe;EACfC,QAAQ;EACRC,gBAAgB;EAChB,GAAGC;AAKiD,CAAC,EACtDC,YAAoD,KAChD;EACJ,MAAMC,iBAAiB,GAAG,IAAAC,eAAM,EAAsB,IAAK,CAAC;EAC5D,MAAMC,UAAU,GAAG,IAAAC,qBAAY,EAAE,CAAEJ,YAAY,EAAEC,iBAAiB,CAAG,CAAC;EACtE,MAAMI,QAAQ,GAAG,IAAAH,eAAM,EAAWH,SAAS,CAACO,KAAM,CAAC;EAEnD,oBACC,IAAAb,WAAA,CAAAc,GAAA,EAACjB,iBAAA,CAAAkB,gBAAgB;IAChBb,QAAQ,EAAGA,QAAU;IACrBG,gBAAgB,EAAGA,gBAAkB;IACrCF,eAAe,EAAGA,CAAA,KAAM;MACvB,OAAOA,eAAe,GAAIS,QAAQ,CAACI,OAAQ,CAAC;IAC7C,CAAG;IACHC,iBAAiB,EAAGA,CAAA,KAAMT,iBAAiB,CAACQ,OAAS;IAAAE,QAAA,eAErD,IAAAlB,WAAA,CAAAc,GAAA,EAAChB,aAAA,CAAAqB,OAAY;MACZC,qBAAqB;MACrBC,GAAG,EAAGX,UAAY;MAClBN,QAAQ,EAAGA,CAAES,KAAK,EAAE,GAAGS,IAAI,KAAM;QAChCV,QAAQ,CAACI,OAAO,GAAGH,KAAK;QACxBT,QAAQ,GAAIS,KAAK,EAAE,GAAGS,IAAK,CAAC;MAC7B,CAAG;MAAA,GACEhB;IAAS,CACd;EAAC,CACe,CAAC;AAErB,CAAC;AAEM,MAAMiB,qBAAqB,GAAAC,OAAA,CAAAD,qBAAA,GAAG,IAAAE,mBAAU,EAC9CxB,gCACD,CAAC","ignoreList":[]}