@wordpress/dataviews 10.1.2 → 10.3.1-next.2f1c7c01b.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 (485) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +1 -0
  3. package/build/components/dataform/index.js +6 -2
  4. package/build/components/dataform/index.js.map +3 -3
  5. package/build/components/dataform-context/index.js +4 -2
  6. package/build/components/dataform-context/index.js.map +1 -1
  7. package/build/components/dataviews/index.js +8 -6
  8. package/build/components/dataviews/index.js.map +1 -1
  9. package/build/components/dataviews-bulk-actions/index.js +4 -2
  10. package/build/components/dataviews-bulk-actions/index.js.map +1 -1
  11. package/build/components/dataviews-context/index.js +3 -1
  12. package/build/components/dataviews-context/index.js.map +1 -1
  13. package/build/components/dataviews-filters/add-filter.js +4 -2
  14. package/build/components/dataviews-filters/add-filter.js.map +1 -1
  15. package/build/components/dataviews-filters/filter.js +20 -5
  16. package/build/components/dataviews-filters/filter.js.map +3 -3
  17. package/build/components/dataviews-filters/filters-toggled.js +3 -1
  18. package/build/components/dataviews-filters/filters-toggled.js.map +1 -1
  19. package/build/components/dataviews-filters/filters.js +3 -1
  20. package/build/components/dataviews-filters/filters.js.map +1 -1
  21. package/build/components/dataviews-filters/index.js +2 -0
  22. package/build/components/dataviews-filters/index.js.map +1 -1
  23. package/build/components/dataviews-filters/input-widget.js +3 -1
  24. package/build/components/dataviews-filters/input-widget.js.map +1 -1
  25. package/build/components/dataviews-filters/reset-filters.js +3 -1
  26. package/build/components/dataviews-filters/reset-filters.js.map +1 -1
  27. package/build/components/dataviews-filters/search-widget.js +8 -6
  28. package/build/components/dataviews-filters/search-widget.js.map +2 -2
  29. package/build/components/dataviews-filters/toggle.js +3 -1
  30. package/build/components/dataviews-filters/toggle.js.map +1 -1
  31. package/build/components/dataviews-filters/use-filters.js +2 -0
  32. package/build/components/dataviews-filters/use-filters.js.map +1 -1
  33. package/build/components/dataviews-filters/utils.js +4 -2
  34. package/build/components/dataviews-filters/utils.js.map +1 -1
  35. package/build/components/dataviews-footer/index.js +4 -2
  36. package/build/components/dataviews-footer/index.js.map +1 -1
  37. package/build/components/dataviews-item-actions/index.js +23 -4
  38. package/build/components/dataviews-item-actions/index.js.map +2 -2
  39. package/build/components/dataviews-layout/index.js +3 -1
  40. package/build/components/dataviews-layout/index.js.map +1 -1
  41. package/build/components/dataviews-pagination/index.js +3 -1
  42. package/build/components/dataviews-pagination/index.js.map +1 -1
  43. package/build/components/dataviews-picker/footer.js +4 -2
  44. package/build/components/dataviews-picker/footer.js.map +1 -1
  45. package/build/components/dataviews-picker/index.js +8 -6
  46. package/build/components/dataviews-picker/index.js.map +1 -1
  47. package/build/components/dataviews-search/index.js +4 -2
  48. package/build/components/dataviews-search/index.js.map +1 -1
  49. package/build/components/dataviews-selection-checkbox/index.js +3 -1
  50. package/build/components/dataviews-selection-checkbox/index.js.map +1 -1
  51. package/build/components/dataviews-view-config/index.js +6 -4
  52. package/build/components/dataviews-view-config/index.js.map +1 -1
  53. package/build/components/dataviews-view-config/infinite-scroll-toggle.js +3 -1
  54. package/build/components/dataviews-view-config/infinite-scroll-toggle.js.map +1 -1
  55. package/build/constants.js +36 -34
  56. package/build/constants.js.map +1 -1
  57. package/build/dataform-controls/array.js +4 -2
  58. package/build/dataform-controls/array.js.map +1 -1
  59. package/build/dataform-controls/checkbox.js +4 -2
  60. package/build/dataform-controls/checkbox.js.map +1 -1
  61. package/build/dataform-controls/color.js +5 -3
  62. package/build/dataform-controls/color.js.map +1 -1
  63. package/build/dataform-controls/date.js +8 -6
  64. package/build/dataform-controls/date.js.map +1 -1
  65. package/build/dataform-controls/datetime.js +11 -15
  66. package/build/dataform-controls/datetime.js.map +3 -3
  67. package/build/dataform-controls/email.js +3 -1
  68. package/build/dataform-controls/email.js.map +1 -1
  69. package/build/dataform-controls/index.js +4 -2
  70. package/build/dataform-controls/index.js.map +1 -1
  71. package/build/dataform-controls/integer.js +3 -1
  72. package/build/dataform-controls/integer.js.map +1 -1
  73. package/build/dataform-controls/number.js +3 -1
  74. package/build/dataform-controls/number.js.map +1 -1
  75. package/build/dataform-controls/password.js +6 -5
  76. package/build/dataform-controls/password.js.map +3 -3
  77. package/build/dataform-controls/radio.js +4 -2
  78. package/build/dataform-controls/radio.js.map +1 -1
  79. package/build/dataform-controls/select.js +4 -2
  80. package/build/dataform-controls/select.js.map +1 -1
  81. package/build/dataform-controls/telephone.js +3 -1
  82. package/build/dataform-controls/telephone.js.map +1 -1
  83. package/build/dataform-controls/text.js +3 -1
  84. package/build/dataform-controls/text.js.map +1 -1
  85. package/build/dataform-controls/textarea.js +4 -2
  86. package/build/dataform-controls/textarea.js.map +1 -1
  87. package/build/dataform-controls/toggle-group.js +4 -2
  88. package/build/dataform-controls/toggle-group.js.map +1 -1
  89. package/build/dataform-controls/toggle.js +4 -2
  90. package/build/dataform-controls/toggle.js.map +1 -1
  91. package/build/dataform-controls/url.js +3 -1
  92. package/build/dataform-controls/url.js.map +1 -1
  93. package/build/dataform-controls/utils/get-custom-validity.js +2 -0
  94. package/build/dataform-controls/utils/get-custom-validity.js.map +1 -1
  95. package/build/dataform-controls/utils/relative-date-control.js +4 -2
  96. package/build/dataform-controls/utils/relative-date-control.js.map +1 -1
  97. package/build/dataform-controls/utils/validated-input.js +4 -2
  98. package/build/dataform-controls/utils/validated-input.js.map +1 -1
  99. package/build/dataform-controls/utils/validated-number.js +4 -2
  100. package/build/dataform-controls/utils/validated-number.js.map +1 -1
  101. package/build/dataform-layouts/card/index.js +91 -42
  102. package/build/dataform-layouts/card/index.js.map +3 -3
  103. package/build/dataform-layouts/data-form-layout.js +8 -14
  104. package/build/dataform-layouts/data-form-layout.js.map +3 -3
  105. package/build/dataform-layouts/get-summary-fields.js +3 -1
  106. package/build/dataform-layouts/get-summary-fields.js.map +1 -1
  107. package/build/dataform-layouts/index.js +4 -2
  108. package/build/dataform-layouts/index.js.map +2 -2
  109. package/build/dataform-layouts/{normalize-form-fields.js → normalize-form.js} +43 -24
  110. package/build/dataform-layouts/normalize-form.js.map +7 -0
  111. package/build/dataform-layouts/panel/dropdown.js +9 -8
  112. package/build/dataform-layouts/panel/dropdown.js.map +2 -2
  113. package/build/dataform-layouts/panel/index.js +10 -14
  114. package/build/dataform-layouts/panel/index.js.map +2 -2
  115. package/build/dataform-layouts/panel/modal.js +9 -8
  116. package/build/dataform-layouts/panel/modal.js.map +2 -2
  117. package/build/dataform-layouts/panel/summary-button.js +3 -1
  118. package/build/dataform-layouts/panel/summary-button.js.map +1 -1
  119. package/build/dataform-layouts/regular/index.js +8 -10
  120. package/build/dataform-layouts/regular/index.js.map +2 -2
  121. package/build/dataform-layouts/row/index.js +10 -33
  122. package/build/dataform-layouts/row/index.js.map +3 -3
  123. package/build/dataviews-layouts/grid/index.js +4 -2
  124. package/build/dataviews-layouts/grid/index.js.map +1 -1
  125. package/build/dataviews-layouts/grid/preview-size-picker.js +4 -2
  126. package/build/dataviews-layouts/grid/preview-size-picker.js.map +1 -1
  127. package/build/dataviews-layouts/index.js +3 -1
  128. package/build/dataviews-layouts/index.js.map +1 -1
  129. package/build/dataviews-layouts/list/index.js +5 -5
  130. package/build/dataviews-layouts/list/index.js.map +2 -2
  131. package/build/dataviews-layouts/picker-grid/index.js +4 -2
  132. package/build/dataviews-layouts/picker-grid/index.js.map +1 -1
  133. package/build/dataviews-layouts/table/column-header-menu.js +6 -4
  134. package/build/dataviews-layouts/table/column-header-menu.js.map +1 -1
  135. package/build/dataviews-layouts/table/column-primary.js +3 -1
  136. package/build/dataviews-layouts/table/column-primary.js.map +1 -1
  137. package/build/dataviews-layouts/table/density-picker.js +3 -1
  138. package/build/dataviews-layouts/table/density-picker.js.map +1 -1
  139. package/build/dataviews-layouts/table/index.js +3 -1
  140. package/build/dataviews-layouts/table/index.js.map +1 -1
  141. package/build/dataviews-layouts/table/use-is-horizontal-scroll-end.js +3 -1
  142. package/build/dataviews-layouts/table/use-is-horizontal-scroll-end.js.map +1 -1
  143. package/build/dataviews-layouts/utils/get-data-by-group.js +2 -0
  144. package/build/dataviews-layouts/utils/get-data-by-group.js.map +1 -1
  145. package/build/dataviews-layouts/utils/grid-items.js +4 -2
  146. package/build/dataviews-layouts/utils/grid-items.js.map +1 -1
  147. package/build/dataviews-layouts/utils/item-click-wrapper.js +3 -1
  148. package/build/dataviews-layouts/utils/item-click-wrapper.js.map +1 -1
  149. package/build/dataviews-layouts/utils/preview-size-picker.js +4 -2
  150. package/build/dataviews-layouts/utils/preview-size-picker.js.map +1 -1
  151. package/build/field-types/array.js +3 -1
  152. package/build/field-types/array.js.map +1 -1
  153. package/build/field-types/boolean.js +3 -1
  154. package/build/field-types/boolean.js.map +1 -1
  155. package/build/field-types/color.js +3 -1
  156. package/build/field-types/color.js.map +1 -1
  157. package/build/field-types/date.js +4 -2
  158. package/build/field-types/date.js.map +1 -1
  159. package/build/field-types/datetime.js +17 -2
  160. package/build/field-types/datetime.js.map +3 -3
  161. package/build/field-types/email.js +4 -2
  162. package/build/field-types/email.js.map +1 -1
  163. package/build/field-types/index.js +3 -1
  164. package/build/field-types/index.js.map +1 -1
  165. package/build/field-types/integer.js +3 -1
  166. package/build/field-types/integer.js.map +1 -1
  167. package/build/field-types/media.js +2 -0
  168. package/build/field-types/media.js.map +1 -1
  169. package/build/field-types/number.js +3 -1
  170. package/build/field-types/number.js.map +1 -1
  171. package/build/field-types/password.js +3 -1
  172. package/build/field-types/password.js.map +1 -1
  173. package/build/field-types/telephone.js +3 -1
  174. package/build/field-types/telephone.js.map +1 -1
  175. package/build/field-types/text.js +3 -1
  176. package/build/field-types/text.js.map +1 -1
  177. package/build/field-types/url.js +3 -1
  178. package/build/field-types/url.js.map +1 -1
  179. package/build/{dataform-layouts/is-combined-field.js → field-types/utils/parse-date-time.js} +15 -11
  180. package/build/field-types/utils/parse-date-time.js.map +7 -0
  181. package/build/field-types/utils/render-from-elements.js +2 -0
  182. package/build/field-types/utils/render-from-elements.js.map +1 -1
  183. package/build/hooks/index.js +2 -0
  184. package/build/hooks/index.js.map +1 -1
  185. package/build/hooks/use-elements.js +3 -1
  186. package/build/hooks/use-elements.js.map +1 -1
  187. package/build/hooks/use-form-validity.js +425 -321
  188. package/build/hooks/use-form-validity.js.map +3 -3
  189. package/build/index.js +2 -0
  190. package/build/index.js.map +1 -1
  191. package/build/lock-unlock.js +3 -1
  192. package/build/lock-unlock.js.map +1 -1
  193. package/build/types/dataform.js +2 -0
  194. package/build/types/dataform.js.map +2 -2
  195. package/build/types/dataviews.js +2 -0
  196. package/build/types/dataviews.js.map +1 -1
  197. package/build/types/field-api.js +2 -0
  198. package/build/types/field-api.js.map +1 -1
  199. package/build/types/index.js +2 -0
  200. package/build/types/index.js.map +1 -1
  201. package/build/types/private.js +2 -0
  202. package/build/types/private.js.map +1 -1
  203. package/build/utils/filter-sort-and-paginate.js +3 -1
  204. package/build/utils/filter-sort-and-paginate.js.map +1 -1
  205. package/build/utils/has-elements.js +2 -0
  206. package/build/utils/has-elements.js.map +1 -1
  207. package/build/utils/normalize-fields.js +4 -2
  208. package/build/utils/normalize-fields.js.map +1 -1
  209. package/build-module/components/dataform/index.js +5 -2
  210. package/build-module/components/dataform/index.js.map +2 -2
  211. package/build-module/components/dataform-context/index.js +3 -2
  212. package/build-module/components/dataform-context/index.js.map +1 -1
  213. package/build-module/components/dataviews/index.js +7 -6
  214. package/build-module/components/dataviews/index.js.map +1 -1
  215. package/build-module/components/dataviews-bulk-actions/index.js +3 -2
  216. package/build-module/components/dataviews-bulk-actions/index.js.map +1 -1
  217. package/build-module/components/dataviews-context/index.js +2 -1
  218. package/build-module/components/dataviews-context/index.js.map +1 -1
  219. package/build-module/components/dataviews-filters/add-filter.js +3 -2
  220. package/build-module/components/dataviews-filters/add-filter.js.map +1 -1
  221. package/build-module/components/dataviews-filters/filter.js +19 -5
  222. package/build-module/components/dataviews-filters/filter.js.map +2 -2
  223. package/build-module/components/dataviews-filters/filters-toggled.js +2 -1
  224. package/build-module/components/dataviews-filters/filters-toggled.js.map +1 -1
  225. package/build-module/components/dataviews-filters/filters.js +2 -1
  226. package/build-module/components/dataviews-filters/filters.js.map +1 -1
  227. package/build-module/components/dataviews-filters/index.js +1 -0
  228. package/build-module/components/dataviews-filters/index.js.map +1 -1
  229. package/build-module/components/dataviews-filters/input-widget.js +2 -1
  230. package/build-module/components/dataviews-filters/input-widget.js.map +1 -1
  231. package/build-module/components/dataviews-filters/reset-filters.js +2 -1
  232. package/build-module/components/dataviews-filters/reset-filters.js.map +1 -1
  233. package/build-module/components/dataviews-filters/search-widget.js +7 -6
  234. package/build-module/components/dataviews-filters/search-widget.js.map +2 -2
  235. package/build-module/components/dataviews-filters/toggle.js +2 -1
  236. package/build-module/components/dataviews-filters/toggle.js.map +1 -1
  237. package/build-module/components/dataviews-filters/use-filters.js +1 -0
  238. package/build-module/components/dataviews-filters/use-filters.js.map +1 -1
  239. package/build-module/components/dataviews-filters/utils.js +3 -2
  240. package/build-module/components/dataviews-filters/utils.js.map +1 -1
  241. package/build-module/components/dataviews-footer/index.js +3 -2
  242. package/build-module/components/dataviews-footer/index.js.map +1 -1
  243. package/build-module/components/dataviews-item-actions/index.js +22 -4
  244. package/build-module/components/dataviews-item-actions/index.js.map +2 -2
  245. package/build-module/components/dataviews-layout/index.js +2 -1
  246. package/build-module/components/dataviews-layout/index.js.map +1 -1
  247. package/build-module/components/dataviews-pagination/index.js +2 -1
  248. package/build-module/components/dataviews-pagination/index.js.map +1 -1
  249. package/build-module/components/dataviews-picker/footer.js +3 -2
  250. package/build-module/components/dataviews-picker/footer.js.map +1 -1
  251. package/build-module/components/dataviews-picker/index.js +7 -6
  252. package/build-module/components/dataviews-picker/index.js.map +1 -1
  253. package/build-module/components/dataviews-search/index.js +3 -2
  254. package/build-module/components/dataviews-search/index.js.map +1 -1
  255. package/build-module/components/dataviews-selection-checkbox/index.js +2 -1
  256. package/build-module/components/dataviews-selection-checkbox/index.js.map +1 -1
  257. package/build-module/components/dataviews-view-config/index.js +5 -4
  258. package/build-module/components/dataviews-view-config/index.js.map +1 -1
  259. package/build-module/components/dataviews-view-config/infinite-scroll-toggle.js +2 -1
  260. package/build-module/components/dataviews-view-config/infinite-scroll-toggle.js.map +1 -1
  261. package/build-module/constants.js +35 -34
  262. package/build-module/constants.js.map +1 -1
  263. package/build-module/dataform-controls/array.js +3 -2
  264. package/build-module/dataform-controls/array.js.map +1 -1
  265. package/build-module/dataform-controls/checkbox.js +3 -2
  266. package/build-module/dataform-controls/checkbox.js.map +1 -1
  267. package/build-module/dataform-controls/color.js +4 -3
  268. package/build-module/dataform-controls/color.js.map +1 -1
  269. package/build-module/dataform-controls/date.js +7 -6
  270. package/build-module/dataform-controls/date.js.map +1 -1
  271. package/build-module/dataform-controls/datetime.js +7 -12
  272. package/build-module/dataform-controls/datetime.js.map +2 -2
  273. package/build-module/dataform-controls/email.js +2 -1
  274. package/build-module/dataform-controls/email.js.map +1 -1
  275. package/build-module/dataform-controls/index.js +3 -2
  276. package/build-module/dataform-controls/index.js.map +1 -1
  277. package/build-module/dataform-controls/integer.js +2 -1
  278. package/build-module/dataform-controls/integer.js.map +1 -1
  279. package/build-module/dataform-controls/number.js +2 -1
  280. package/build-module/dataform-controls/number.js.map +1 -1
  281. package/build-module/dataform-controls/password.js +9 -6
  282. package/build-module/dataform-controls/password.js.map +2 -2
  283. package/build-module/dataform-controls/radio.js +3 -2
  284. package/build-module/dataform-controls/radio.js.map +1 -1
  285. package/build-module/dataform-controls/select.js +3 -2
  286. package/build-module/dataform-controls/select.js.map +1 -1
  287. package/build-module/dataform-controls/telephone.js +2 -1
  288. package/build-module/dataform-controls/telephone.js.map +1 -1
  289. package/build-module/dataform-controls/text.js +2 -1
  290. package/build-module/dataform-controls/text.js.map +1 -1
  291. package/build-module/dataform-controls/textarea.js +3 -2
  292. package/build-module/dataform-controls/textarea.js.map +1 -1
  293. package/build-module/dataform-controls/toggle-group.js +3 -2
  294. package/build-module/dataform-controls/toggle-group.js.map +1 -1
  295. package/build-module/dataform-controls/toggle.js +3 -2
  296. package/build-module/dataform-controls/toggle.js.map +1 -1
  297. package/build-module/dataform-controls/url.js +2 -1
  298. package/build-module/dataform-controls/url.js.map +1 -1
  299. package/build-module/dataform-controls/utils/get-custom-validity.js +1 -0
  300. package/build-module/dataform-controls/utils/get-custom-validity.js.map +1 -1
  301. package/build-module/dataform-controls/utils/relative-date-control.js +3 -2
  302. package/build-module/dataform-controls/utils/relative-date-control.js.map +1 -1
  303. package/build-module/dataform-controls/utils/validated-input.js +3 -2
  304. package/build-module/dataform-controls/utils/validated-input.js.map +1 -1
  305. package/build-module/dataform-controls/utils/validated-number.js +3 -2
  306. package/build-module/dataform-controls/utils/validated-number.js.map +1 -1
  307. package/build-module/dataform-layouts/card/index.js +95 -42
  308. package/build-module/dataform-layouts/card/index.js.map +3 -3
  309. package/build-module/dataform-layouts/data-form-layout.js +8 -15
  310. package/build-module/dataform-layouts/data-form-layout.js.map +2 -2
  311. package/build-module/dataform-layouts/get-summary-fields.js +2 -1
  312. package/build-module/dataform-layouts/get-summary-fields.js.map +1 -1
  313. package/build-module/dataform-layouts/index.js +3 -2
  314. package/build-module/dataform-layouts/index.js.map +2 -2
  315. package/build-module/dataform-layouts/{normalize-form-fields.js → normalize-form.js} +38 -19
  316. package/build-module/dataform-layouts/normalize-form.js.map +7 -0
  317. package/build-module/dataform-layouts/panel/dropdown.js +7 -7
  318. package/build-module/dataform-layouts/panel/dropdown.js.map +2 -2
  319. package/build-module/dataform-layouts/panel/index.js +9 -14
  320. package/build-module/dataform-layouts/panel/index.js.map +2 -2
  321. package/build-module/dataform-layouts/panel/modal.js +7 -7
  322. package/build-module/dataform-layouts/panel/modal.js.map +2 -2
  323. package/build-module/dataform-layouts/panel/summary-button.js +2 -1
  324. package/build-module/dataform-layouts/panel/summary-button.js.map +1 -1
  325. package/build-module/dataform-layouts/regular/index.js +6 -9
  326. package/build-module/dataform-layouts/regular/index.js.map +2 -2
  327. package/build-module/dataform-layouts/row/index.js +9 -23
  328. package/build-module/dataform-layouts/row/index.js.map +2 -2
  329. package/build-module/dataviews-layouts/grid/index.js +3 -2
  330. package/build-module/dataviews-layouts/grid/index.js.map +1 -1
  331. package/build-module/dataviews-layouts/grid/preview-size-picker.js +3 -2
  332. package/build-module/dataviews-layouts/grid/preview-size-picker.js.map +1 -1
  333. package/build-module/dataviews-layouts/index.js +2 -1
  334. package/build-module/dataviews-layouts/index.js.map +1 -1
  335. package/build-module/dataviews-layouts/list/index.js +4 -5
  336. package/build-module/dataviews-layouts/list/index.js.map +2 -2
  337. package/build-module/dataviews-layouts/picker-grid/index.js +3 -2
  338. package/build-module/dataviews-layouts/picker-grid/index.js.map +1 -1
  339. package/build-module/dataviews-layouts/table/column-header-menu.js +5 -4
  340. package/build-module/dataviews-layouts/table/column-header-menu.js.map +1 -1
  341. package/build-module/dataviews-layouts/table/column-primary.js +2 -1
  342. package/build-module/dataviews-layouts/table/column-primary.js.map +1 -1
  343. package/build-module/dataviews-layouts/table/density-picker.js +2 -1
  344. package/build-module/dataviews-layouts/table/density-picker.js.map +1 -1
  345. package/build-module/dataviews-layouts/table/index.js +2 -1
  346. package/build-module/dataviews-layouts/table/index.js.map +1 -1
  347. package/build-module/dataviews-layouts/table/use-is-horizontal-scroll-end.js +2 -1
  348. package/build-module/dataviews-layouts/table/use-is-horizontal-scroll-end.js.map +1 -1
  349. package/build-module/dataviews-layouts/utils/get-data-by-group.js +1 -0
  350. package/build-module/dataviews-layouts/utils/get-data-by-group.js.map +1 -1
  351. package/build-module/dataviews-layouts/utils/grid-items.js +3 -2
  352. package/build-module/dataviews-layouts/utils/grid-items.js.map +1 -1
  353. package/build-module/dataviews-layouts/utils/item-click-wrapper.js +2 -1
  354. package/build-module/dataviews-layouts/utils/item-click-wrapper.js.map +1 -1
  355. package/build-module/dataviews-layouts/utils/preview-size-picker.js +3 -2
  356. package/build-module/dataviews-layouts/utils/preview-size-picker.js.map +1 -1
  357. package/build-module/field-types/array.js +2 -1
  358. package/build-module/field-types/array.js.map +1 -1
  359. package/build-module/field-types/boolean.js +2 -1
  360. package/build-module/field-types/boolean.js.map +1 -1
  361. package/build-module/field-types/color.js +2 -1
  362. package/build-module/field-types/color.js.map +1 -1
  363. package/build-module/field-types/date.js +3 -2
  364. package/build-module/field-types/date.js.map +1 -1
  365. package/build-module/field-types/datetime.js +16 -2
  366. package/build-module/field-types/datetime.js.map +2 -2
  367. package/build-module/field-types/email.js +3 -2
  368. package/build-module/field-types/email.js.map +1 -1
  369. package/build-module/field-types/index.js +2 -1
  370. package/build-module/field-types/index.js.map +1 -1
  371. package/build-module/field-types/integer.js +2 -1
  372. package/build-module/field-types/integer.js.map +1 -1
  373. package/build-module/field-types/media.js +1 -0
  374. package/build-module/field-types/media.js.map +1 -1
  375. package/build-module/field-types/number.js +2 -1
  376. package/build-module/field-types/number.js.map +1 -1
  377. package/build-module/field-types/password.js +2 -1
  378. package/build-module/field-types/password.js.map +1 -1
  379. package/build-module/field-types/telephone.js +2 -1
  380. package/build-module/field-types/telephone.js.map +1 -1
  381. package/build-module/field-types/text.js +2 -1
  382. package/build-module/field-types/text.js.map +1 -1
  383. package/build-module/field-types/url.js +2 -1
  384. package/build-module/field-types/url.js.map +1 -1
  385. package/build-module/field-types/utils/parse-date-time.js +14 -0
  386. package/build-module/field-types/utils/parse-date-time.js.map +7 -0
  387. package/build-module/field-types/utils/render-from-elements.js +1 -0
  388. package/build-module/field-types/utils/render-from-elements.js.map +1 -1
  389. package/build-module/hooks/index.js +1 -0
  390. package/build-module/hooks/index.js.map +1 -1
  391. package/build-module/hooks/use-elements.js +2 -1
  392. package/build-module/hooks/use-elements.js.map +1 -1
  393. package/build-module/hooks/use-form-validity.js +424 -321
  394. package/build-module/hooks/use-form-validity.js.map +3 -3
  395. package/build-module/index.js +1 -0
  396. package/build-module/index.js.map +1 -1
  397. package/build-module/lock-unlock.js +2 -1
  398. package/build-module/lock-unlock.js.map +1 -1
  399. package/build-module/utils/filter-sort-and-paginate.js +2 -1
  400. package/build-module/utils/filter-sort-and-paginate.js.map +1 -1
  401. package/build-module/utils/has-elements.js +1 -0
  402. package/build-module/utils/has-elements.js.map +1 -1
  403. package/build-module/utils/normalize-fields.js +3 -2
  404. package/build-module/utils/normalize-fields.js.map +1 -1
  405. package/build-style/style-rtl.css +12 -12
  406. package/build-style/style.css +12 -12
  407. package/build-types/components/dataform/index.d.ts.map +1 -1
  408. package/build-types/components/dataviews-filters/filter.d.ts.map +1 -1
  409. package/build-types/components/dataviews-item-actions/index.d.ts.map +1 -1
  410. package/build-types/dataform-controls/datetime.d.ts.map +1 -1
  411. package/build-types/dataform-controls/password.d.ts.map +1 -1
  412. package/build-types/dataform-layouts/card/index.d.ts +3 -3
  413. package/build-types/dataform-layouts/card/index.d.ts.map +1 -1
  414. package/build-types/dataform-layouts/data-form-layout.d.ts +4 -4
  415. package/build-types/dataform-layouts/data-form-layout.d.ts.map +1 -1
  416. package/build-types/dataform-layouts/index.d.ts +2 -2
  417. package/build-types/dataform-layouts/index.d.ts.map +1 -1
  418. package/build-types/dataform-layouts/normalize-form.d.ts +8 -0
  419. package/build-types/dataform-layouts/normalize-form.d.ts.map +1 -0
  420. package/build-types/dataform-layouts/panel/dropdown.d.ts +2 -2
  421. package/build-types/dataform-layouts/panel/dropdown.d.ts.map +1 -1
  422. package/build-types/dataform-layouts/panel/index.d.ts.map +1 -1
  423. package/build-types/dataform-layouts/panel/modal.d.ts +2 -2
  424. package/build-types/dataform-layouts/panel/modal.d.ts.map +1 -1
  425. package/build-types/dataform-layouts/regular/index.d.ts.map +1 -1
  426. package/build-types/dataform-layouts/row/index.d.ts.map +1 -1
  427. package/build-types/dataviews-layouts/list/index.d.ts.map +1 -1
  428. package/build-types/field-types/datetime.d.ts +1 -1
  429. package/build-types/field-types/datetime.d.ts.map +1 -1
  430. package/build-types/field-types/utils/parse-date-time.d.ts +2 -0
  431. package/build-types/field-types/utils/parse-date-time.d.ts.map +1 -0
  432. package/build-types/hooks/use-form-validity.d.ts.map +1 -1
  433. package/build-types/stories/dataform.story.d.ts +10 -11
  434. package/build-types/stories/dataform.story.d.ts.map +1 -1
  435. package/build-types/stories/dataviews-picker.story.d.ts +31 -0
  436. package/build-types/stories/dataviews-picker.story.d.ts.map +1 -1
  437. package/build-types/test/normalize-form.d.ts +2 -0
  438. package/build-types/test/normalize-form.d.ts.map +1 -0
  439. package/build-types/types/dataform.d.ts +16 -6
  440. package/build-types/types/dataform.d.ts.map +1 -1
  441. package/build-wp/index.js +830 -601
  442. package/package.json +15 -15
  443. package/src/components/dataform/index.tsx +3 -1
  444. package/src/components/dataviews/style.scss +1 -1
  445. package/src/components/dataviews-bulk-actions/style.scss +1 -1
  446. package/src/components/dataviews-filters/filter.tsx +16 -1
  447. package/src/components/dataviews-filters/style.scss +1 -1
  448. package/src/components/dataviews-item-actions/index.tsx +37 -14
  449. package/src/components/dataviews-pagination/style.scss +2 -2
  450. package/src/dataform-controls/datetime.tsx +3 -10
  451. package/src/dataform-controls/password.tsx +16 -12
  452. package/src/dataform-layouts/card/index.tsx +89 -33
  453. package/src/dataform-layouts/data-form-layout.tsx +12 -23
  454. package/src/dataform-layouts/index.tsx +5 -3
  455. package/src/dataform-layouts/{normalize-form-fields.ts → normalize-form.ts} +44 -23
  456. package/src/dataform-layouts/panel/dropdown.tsx +10 -13
  457. package/src/dataform-layouts/panel/index.tsx +9 -24
  458. package/src/dataform-layouts/panel/modal.tsx +15 -15
  459. package/src/dataform-layouts/regular/index.tsx +7 -12
  460. package/src/dataform-layouts/row/index.tsx +13 -26
  461. package/src/dataviews-layouts/list/index.tsx +0 -2
  462. package/src/dataviews-layouts/table/style.scss +2 -2
  463. package/src/field-types/datetime.tsx +16 -5
  464. package/src/field-types/utils/parse-date-time.ts +17 -0
  465. package/src/hooks/use-form-validity.ts +572 -422
  466. package/src/stories/dataform.story.tsx +520 -456
  467. package/src/stories/dataviews-picker.story.tsx +155 -32
  468. package/src/stories/field-types.story.tsx +7 -7
  469. package/src/test/normalize-form.ts +568 -0
  470. package/src/test/use-form-validity.ts +318 -33
  471. package/src/types/dataform.ts +18 -8
  472. package/tsconfig.tsbuildinfo +1 -1
  473. package/build/dataform-layouts/is-combined-field.js.map +0 -7
  474. package/build/dataform-layouts/normalize-form-fields.js.map +0 -7
  475. package/build-module/dataform-layouts/is-combined-field.js +0 -7
  476. package/build-module/dataform-layouts/is-combined-field.js.map +0 -7
  477. package/build-module/dataform-layouts/normalize-form-fields.js.map +0 -7
  478. package/build-types/dataform-layouts/is-combined-field.d.ts +0 -6
  479. package/build-types/dataform-layouts/is-combined-field.d.ts.map +0 -1
  480. package/build-types/dataform-layouts/normalize-form-fields.d.ts +0 -19
  481. package/build-types/dataform-layouts/normalize-form-fields.d.ts.map +0 -1
  482. package/build-types/test/normalize-form-fields.d.ts +0 -2
  483. package/build-types/test/normalize-form-fields.d.ts.map +0 -1
  484. package/src/dataform-layouts/is-combined-field.ts +0 -10
  485. package/src/test/normalize-form-fields.ts +0 -317
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/dataform-layouts/panel/dropdown.tsx"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalVStack as VStack,\n\t__experimentalHStack as HStack,\n\t__experimentalHeading as Heading,\n\t__experimentalSpacer as Spacer,\n\tDropdown,\n\tButton,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useMemo } from '@wordpress/element';\nimport { closeSmall } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport type {\n\tFieldValidity,\n\tForm,\n\tFormField,\n\tFormValidity,\n\tNormalizedField,\n} from '../../types';\nimport { DataFormLayout } from '../data-form-layout';\nimport { isCombinedField } from '../is-combined-field';\nimport { DEFAULT_LAYOUT } from '../normalize-form-fields';\nimport SummaryButton from './summary-button';\n\nfunction DropdownHeader( {\n\ttitle,\n\tonClose,\n}: {\n\ttitle?: string;\n\tonClose: () => void;\n} ) {\n\treturn (\n\t\t<VStack\n\t\t\tclassName=\"dataforms-layouts-panel__dropdown-header\"\n\t\t\tspacing={ 4 }\n\t\t>\n\t\t\t<HStack alignment=\"center\">\n\t\t\t\t{ title && (\n\t\t\t\t\t<Heading level={ 2 } size={ 13 }>\n\t\t\t\t\t\t{ title }\n\t\t\t\t\t</Heading>\n\t\t\t\t) }\n\t\t\t\t<Spacer />\n\t\t\t\t{ onClose && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tlabel={ __( 'Close' ) }\n\t\t\t\t\t\ticon={ closeSmall }\n\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</HStack>\n\t\t</VStack>\n\t);\n}\n\nfunction PanelDropdown< Item >( {\n\tdata,\n\tfield,\n\tonChange,\n\tvalidity,\n\tlabelPosition = 'side',\n\tsummaryFields,\n\tfieldDefinition,\n\tpopoverAnchor,\n}: {\n\tdata: Item;\n\tfield: FormField;\n\tonChange: ( value: any ) => void;\n\tvalidity?: FieldValidity;\n\tlabelPosition: 'side' | 'top' | 'none';\n\tsummaryFields: NormalizedField< Item >[];\n\tfieldDefinition: NormalizedField< Item >;\n\tpopoverAnchor: HTMLElement | null;\n} ) {\n\tconst fieldLabel = isCombinedField( field )\n\t\t? field.label\n\t\t: fieldDefinition?.label;\n\n\tconst form: Form = useMemo(\n\t\t(): Form => ( {\n\t\t\tlayout: DEFAULT_LAYOUT,\n\t\t\tfields: isCombinedField( field )\n\t\t\t\t? field.children\n\t\t\t\t: // If not explicit children return the field id itself.\n\t\t\t\t [ { id: field.id } ],\n\t\t} ),\n\t\t[ field ]\n\t);\n\tconst formValidity = useMemo( (): FormValidity => {\n\t\tif ( validity === undefined ) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif ( isCombinedField( field ) ) {\n\t\t\treturn validity?.children;\n\t\t}\n\n\t\treturn { [ field.id ]: validity };\n\t}, [ validity, field ] );\n\n\t// Memoize popoverProps to avoid returning a new object every time.\n\tconst popoverProps = useMemo(\n\t\t() => ( {\n\t\t\t// Anchor the popover to the middle of the entire row so that it doesn't\n\t\t\t// move around when the label changes.\n\t\t\tanchor: popoverAnchor,\n\t\t\tplacement: 'left-start',\n\t\t\toffset: 36,\n\t\t\tshift: true,\n\t\t} ),\n\t\t[ popoverAnchor ]\n\t);\n\n\treturn (\n\t\t<Dropdown\n\t\t\tcontentClassName=\"dataforms-layouts-panel__field-dropdown\"\n\t\t\tpopoverProps={ popoverProps }\n\t\t\tfocusOnMount\n\t\t\ttoggleProps={ {\n\t\t\t\tsize: 'compact',\n\t\t\t\tvariant: 'tertiary',\n\t\t\t\ttooltipPosition: 'middle left',\n\t\t\t} }\n\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t<SummaryButton\n\t\t\t\t\tsummaryFields={ summaryFields }\n\t\t\t\t\tdata={ data }\n\t\t\t\t\tlabelPosition={ labelPosition }\n\t\t\t\t\tfieldLabel={ fieldLabel }\n\t\t\t\t\tdisabled={ fieldDefinition.readOnly === true }\n\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\trenderContent={ ( { onClose } ) => (\n\t\t\t\t<>\n\t\t\t\t\t<DropdownHeader title={ fieldLabel } onClose={ onClose } />\n\t\t\t\t\t<DataFormLayout\n\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\tform={ form }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\tvalidity={ formValidity }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ( FieldLayout, childField, childFieldValidity ) => (\n\t\t\t\t\t\t\t<FieldLayout\n\t\t\t\t\t\t\t\tkey={ childField.id }\n\t\t\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\t\t\tfield={ childField }\n\t\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\t\thideLabelFromVision={\n\t\t\t\t\t\t\t\t\t( form?.fields ?? [] ).length < 2\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tvalidity={ childFieldValidity }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</DataFormLayout>\n\t\t\t\t</>\n\t\t\t) }\n\t\t/>\n\t);\n}\n\nexport default PanelDropdown;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AA0CG;AAvCH,wBAOO;AACP,kBAAmB;AACnB,qBAAwB;AACxB,mBAA2B;AAY3B,8BAA+B;AAC/B,+BAAgC;AAChC,mCAA+B;AAC/B,4BAA0B;AAE1B,SAAS,eAAgB;AAAA,EACxB;AAAA,EACA;AACD,GAGI;AACH,SACC;AAAA,IAAC,kBAAAA;AAAA,IAAA;AAAA,MACA,WAAU;AAAA,MACV,SAAU;AAAA,MAEV,uDAAC,kBAAAC,sBAAA,EAAO,WAAU,UACf;AAAA,iBACD,4CAAC,kBAAAC,uBAAA,EAAQ,OAAQ,GAAI,MAAO,IACzB,iBACH;AAAA,QAED,4CAAC,kBAAAC,sBAAA,EAAO;AAAA,QACN,WACD;AAAA,UAAC;AAAA;AAAA,YACA,WAAQ,gBAAI,OAAQ;AAAA,YACpB,MAAO;AAAA,YACP,SAAU;AAAA,YACV,MAAK;AAAA;AAAA,QACN;AAAA,SAEF;AAAA;AAAA,EACD;AAEF;AAEA,SAAS,cAAuB;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,gBAAgB;AAAA,EAChB;AAAA,EACA;AAAA,EACA;AACD,GASI;AACH,QAAM,iBAAa,0CAAiB,KAAM,IACvC,MAAM,QACN,iBAAiB;AAEpB,QAAM,WAAa;AAAA,IAClB,OAAc;AAAA,MACb,QAAQ;AAAA,MACR,YAAQ,0CAAiB,KAAM,IAC5B,MAAM;AAAA;AAAA,QAEN,CAAE,EAAE,IAAI,MAAM,GAAG,CAAE;AAAA;AAAA,IACvB;AAAA,IACA,CAAE,KAAM;AAAA,EACT;AACA,QAAM,mBAAe,wBAAS,MAAoB;AACjD,QAAK,aAAa,QAAY;AAC7B,aAAO;AAAA,IACR;AAEA,YAAK,0CAAiB,KAAM,GAAI;AAC/B,aAAO,UAAU;AAAA,IAClB;AAEA,WAAO,EAAE,CAAE,MAAM,EAAG,GAAG,SAAS;AAAA,EACjC,GAAG,CAAE,UAAU,KAAM,CAAE;AAGvB,QAAM,mBAAe;AAAA,IACpB,OAAQ;AAAA;AAAA;AAAA,MAGP,QAAQ;AAAA,MACR,WAAW;AAAA,MACX,QAAQ;AAAA,MACR,OAAO;AAAA,IACR;AAAA,IACA,CAAE,aAAc;AAAA,EACjB;AAEA,SACC;AAAA,IAAC;AAAA;AAAA,MACA,kBAAiB;AAAA,MACjB;AAAA,MACA,cAAY;AAAA,MACZ,aAAc;AAAA,QACb,MAAM;AAAA,QACN,SAAS;AAAA,QACT,iBAAiB;AAAA,MAClB;AAAA,MACA,cAAe,CAAE,EAAE,QAAQ,SAAS,MACnC;AAAA,QAAC,sBAAAC;AAAA,QAAA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA,UAAW,gBAAgB,aAAa;AAAA,UACxC,SAAU;AAAA,UACV,iBAAgB;AAAA;AAAA,MACjB;AAAA,MAED,eAAgB,CAAE,EAAE,QAAQ,MAC3B,4EACC;AAAA,oDAAC,kBAAe,OAAQ,YAAa,SAAoB;AAAA,QACzD;AAAA,UAAC;AAAA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA,UAAW;AAAA,YAET,WAAE,aAAa,YAAY,uBAC5B;AAAA,cAAC;AAAA;AAAA,gBAEA;AAAA,gBACA,OAAQ;AAAA,gBACR;AAAA,gBACA,sBACG,MAAM,UAAU,CAAC,GAAI,SAAS;AAAA,gBAEjC,UAAW;AAAA;AAAA,cAPL,WAAW;AAAA,YAQlB;AAAA;AAAA,QAEF;AAAA,SACD;AAAA;AAAA,EAEF;AAEF;AAEA,IAAO,mBAAQ;",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalVStack as VStack,\n\t__experimentalHStack as HStack,\n\t__experimentalHeading as Heading,\n\t__experimentalSpacer as Spacer,\n\tDropdown,\n\tButton,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useMemo } from '@wordpress/element';\nimport { closeSmall } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport type {\n\tFieldValidity,\n\tNormalizedForm,\n\tNormalizedFormField,\n\tFormValidity,\n\tNormalizedField,\n} from '../../types';\nimport { DataFormLayout } from '../data-form-layout';\nimport { DEFAULT_LAYOUT } from '../normalize-form';\nimport SummaryButton from './summary-button';\n\nfunction DropdownHeader( {\n\ttitle,\n\tonClose,\n}: {\n\ttitle?: string;\n\tonClose: () => void;\n} ) {\n\treturn (\n\t\t<VStack\n\t\t\tclassName=\"dataforms-layouts-panel__dropdown-header\"\n\t\t\tspacing={ 4 }\n\t\t>\n\t\t\t<HStack alignment=\"center\">\n\t\t\t\t{ title && (\n\t\t\t\t\t<Heading level={ 2 } size={ 13 }>\n\t\t\t\t\t\t{ title }\n\t\t\t\t\t</Heading>\n\t\t\t\t) }\n\t\t\t\t<Spacer />\n\t\t\t\t{ onClose && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tlabel={ __( 'Close' ) }\n\t\t\t\t\t\ticon={ closeSmall }\n\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</HStack>\n\t\t</VStack>\n\t);\n}\n\nfunction PanelDropdown< Item >( {\n\tdata,\n\tfield,\n\tonChange,\n\tvalidity,\n\tlabelPosition = 'side',\n\tsummaryFields,\n\tfieldDefinition,\n\tpopoverAnchor,\n}: {\n\tdata: Item;\n\tfield: NormalizedFormField;\n\tonChange: ( value: any ) => void;\n\tvalidity?: FieldValidity;\n\tlabelPosition: 'side' | 'top' | 'none';\n\tsummaryFields: NormalizedField< Item >[];\n\tfieldDefinition: NormalizedField< Item >;\n\tpopoverAnchor: HTMLElement | null;\n} ) {\n\tconst fieldLabel = !! field.children ? field.label : fieldDefinition?.label;\n\n\tconst form: NormalizedForm = useMemo(\n\t\t() => ( {\n\t\t\tlayout: DEFAULT_LAYOUT,\n\t\t\tfields: !! field.children\n\t\t\t\t? field.children\n\t\t\t\t: // If not explicit children return the field id itself.\n\t\t\t\t [ { id: field.id, layout: DEFAULT_LAYOUT } ],\n\t\t} ),\n\t\t[ field ]\n\t);\n\tconst formValidity = useMemo( (): FormValidity => {\n\t\tif ( validity === undefined ) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif ( !! field.children ) {\n\t\t\treturn validity?.children;\n\t\t}\n\n\t\treturn { [ field.id ]: validity };\n\t}, [ validity, field ] );\n\n\t// Memoize popoverProps to avoid returning a new object every time.\n\tconst popoverProps = useMemo(\n\t\t() => ( {\n\t\t\t// Anchor the popover to the middle of the entire row so that it doesn't\n\t\t\t// move around when the label changes.\n\t\t\tanchor: popoverAnchor,\n\t\t\tplacement: 'left-start',\n\t\t\toffset: 36,\n\t\t\tshift: true,\n\t\t} ),\n\t\t[ popoverAnchor ]\n\t);\n\n\treturn (\n\t\t<Dropdown\n\t\t\tcontentClassName=\"dataforms-layouts-panel__field-dropdown\"\n\t\t\tpopoverProps={ popoverProps }\n\t\t\tfocusOnMount\n\t\t\ttoggleProps={ {\n\t\t\t\tsize: 'compact',\n\t\t\t\tvariant: 'tertiary',\n\t\t\t\ttooltipPosition: 'middle left',\n\t\t\t} }\n\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t<SummaryButton\n\t\t\t\t\tsummaryFields={ summaryFields }\n\t\t\t\t\tdata={ data }\n\t\t\t\t\tlabelPosition={ labelPosition }\n\t\t\t\t\tfieldLabel={ fieldLabel }\n\t\t\t\t\tdisabled={ fieldDefinition.readOnly === true }\n\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\trenderContent={ ( { onClose } ) => (\n\t\t\t\t<>\n\t\t\t\t\t<DropdownHeader title={ fieldLabel } onClose={ onClose } />\n\t\t\t\t\t<DataFormLayout\n\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\tform={ form }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\tvalidity={ formValidity }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ( FieldLayout, childField, childFieldValidity ) => (\n\t\t\t\t\t\t\t<FieldLayout\n\t\t\t\t\t\t\t\tkey={ childField.id }\n\t\t\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\t\t\tfield={ childField }\n\t\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\t\thideLabelFromVision={\n\t\t\t\t\t\t\t\t\t( form?.fields ?? [] ).length < 2\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tvalidity={ childFieldValidity }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</DataFormLayout>\n\t\t\t\t</>\n\t\t\t) }\n\t\t/>\n\t);\n}\n\nexport default PanelDropdown;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,wBAOO;AACP,kBAAmB;AACnB,qBAAwB;AACxB,mBAA2B;AAY3B,8BAA+B;AAC/B,4BAA+B;AAC/B,4BAA0B;AAcvB;AAZH,SAAS,eAAgB;AAAA,EACxB;AAAA,EACA;AACD,GAGI;AACH,SACC;AAAA,IAAC,kBAAAA;AAAA,IAAA;AAAA,MACA,WAAU;AAAA,MACV,SAAU;AAAA,MAEV,uDAAC,kBAAAC,sBAAA,EAAO,WAAU,UACf;AAAA,iBACD,4CAAC,kBAAAC,uBAAA,EAAQ,OAAQ,GAAI,MAAO,IACzB,iBACH;AAAA,QAED,4CAAC,kBAAAC,sBAAA,EAAO;AAAA,QACN,WACD;AAAA,UAAC;AAAA;AAAA,YACA,WAAQ,gBAAI,OAAQ;AAAA,YACpB,MAAO;AAAA,YACP,SAAU;AAAA,YACV,MAAK;AAAA;AAAA,QACN;AAAA,SAEF;AAAA;AAAA,EACD;AAEF;AAEA,SAAS,cAAuB;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,gBAAgB;AAAA,EAChB;AAAA,EACA;AAAA,EACA;AACD,GASI;AACH,QAAM,aAAa,CAAC,CAAE,MAAM,WAAW,MAAM,QAAQ,iBAAiB;AAEtE,QAAM,WAAuB;AAAA,IAC5B,OAAQ;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ,CAAC,CAAE,MAAM,WACd,MAAM;AAAA;AAAA,QAEN,CAAE,EAAE,IAAI,MAAM,IAAI,QAAQ,qCAAe,CAAE;AAAA;AAAA,IAC/C;AAAA,IACA,CAAE,KAAM;AAAA,EACT;AACA,QAAM,mBAAe,wBAAS,MAAoB;AACjD,QAAK,aAAa,QAAY;AAC7B,aAAO;AAAA,IACR;AAEA,QAAK,CAAC,CAAE,MAAM,UAAW;AACxB,aAAO,UAAU;AAAA,IAClB;AAEA,WAAO,EAAE,CAAE,MAAM,EAAG,GAAG,SAAS;AAAA,EACjC,GAAG,CAAE,UAAU,KAAM,CAAE;AAGvB,QAAM,mBAAe;AAAA,IACpB,OAAQ;AAAA;AAAA;AAAA,MAGP,QAAQ;AAAA,MACR,WAAW;AAAA,MACX,QAAQ;AAAA,MACR,OAAO;AAAA,IACR;AAAA,IACA,CAAE,aAAc;AAAA,EACjB;AAEA,SACC;AAAA,IAAC;AAAA;AAAA,MACA,kBAAiB;AAAA,MACjB;AAAA,MACA,cAAY;AAAA,MACZ,aAAc;AAAA,QACb,MAAM;AAAA,QACN,SAAS;AAAA,QACT,iBAAiB;AAAA,MAClB;AAAA,MACA,cAAe,CAAE,EAAE,QAAQ,SAAS,MACnC;AAAA,QAAC,sBAAAC;AAAA,QAAA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA,UAAW,gBAAgB,aAAa;AAAA,UACxC,SAAU;AAAA,UACV,iBAAgB;AAAA;AAAA,MACjB;AAAA,MAED,eAAgB,CAAE,EAAE,QAAQ,MAC3B,4EACC;AAAA,oDAAC,kBAAe,OAAQ,YAAa,SAAoB;AAAA,QACzD;AAAA,UAAC;AAAA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA,UAAW;AAAA,YAET,WAAE,aAAa,YAAY,uBAC5B;AAAA,cAAC;AAAA;AAAA,gBAEA;AAAA,gBACA,OAAQ;AAAA,gBACR;AAAA,gBACA,sBACG,MAAM,UAAU,CAAC,GAAI,SAAS;AAAA,gBAEjC,UAAW;AAAA;AAAA,cAPL,WAAW;AAAA,YAQlB;AAAA;AAAA,QAEF;AAAA,SACD;AAAA;AAAA,EAEF;AAEF;AAEA,IAAO,mBAAQ;",
6
6
  "names": ["VStack", "HStack", "Heading", "Spacer", "SummaryButton"]
7
7
  }
@@ -26,41 +26,40 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
26
26
  mod
27
27
  ));
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+
30
+ // packages/dataviews/src/dataform-layouts/panel/index.tsx
29
31
  var panel_exports = {};
30
32
  __export(panel_exports, {
31
33
  default: () => FormPanelField
32
34
  });
33
35
  module.exports = __toCommonJS(panel_exports);
34
- var import_jsx_runtime = require("react/jsx-runtime");
35
36
  var import_clsx = __toESM(require("clsx"));
36
37
  var import_components = require("@wordpress/components");
37
38
  var import_element = require("@wordpress/element");
38
39
  var import_dataform_context = __toESM(require("../../components/dataform-context"));
39
- var import_is_combined_field = require("../is-combined-field");
40
- var import_normalize_form_fields = require("../normalize-form-fields");
41
40
  var import_dropdown = __toESM(require("./dropdown"));
42
41
  var import_modal = __toESM(require("./modal"));
43
42
  var import_get_summary_fields = require("../get-summary-fields");
44
- const getFieldDefinition = (field, fields) => {
43
+ var import_jsx_runtime = require("react/jsx-runtime");
44
+ var getFieldDefinition = (field, fields) => {
45
45
  const fieldDefinition = fields.find((_field) => _field.id === field.id);
46
46
  if (!fieldDefinition) {
47
47
  return fields.find((_field) => {
48
- if ((0, import_is_combined_field.isCombinedField)(field)) {
48
+ if (!!field.children) {
49
49
  const simpleChildren = field.children.filter(
50
- (child) => typeof child === "string" || !(0, import_is_combined_field.isCombinedField)(child)
50
+ (child) => !child.children
51
51
  );
52
52
  if (simpleChildren.length === 0) {
53
53
  return false;
54
54
  }
55
- const firstChildFieldId = typeof simpleChildren[0] === "string" ? simpleChildren[0] : simpleChildren[0].id;
56
- return _field.id === firstChildFieldId;
55
+ return _field.id === simpleChildren[0].id;
57
56
  }
58
57
  return _field.id === field.id;
59
58
  });
60
59
  }
61
60
  return fieldDefinition;
62
61
  };
63
- const getFieldDefinitionAndSummaryFields = (layout, field, fields) => {
62
+ var getFieldDefinitionAndSummaryFields = (layout, field, fields) => {
64
63
  const summaryFields = (0, import_get_summary_fields.getSummaryFields)(layout.summary, fields);
65
64
  const fieldDefinition = getFieldDefinition(field, fields);
66
65
  if (summaryFields.length === 0) {
@@ -81,10 +80,7 @@ function FormPanelField({
81
80
  validity
82
81
  }) {
83
82
  const { fields } = (0, import_element.useContext)(import_dataform_context.default);
84
- const layout = (0, import_normalize_form_fields.normalizeLayout)({
85
- ...field.layout,
86
- type: "panel"
87
- });
83
+ const layout = field.layout;
88
84
  const [popoverAnchor, setPopoverAnchor] = (0, import_element.useState)(
89
85
  null
90
86
  );
@@ -97,7 +93,7 @@ function FormPanelField({
97
93
  "dataforms-layouts-panel__field-label",
98
94
  `dataforms-layouts-panel__field-label--label-position-${labelPosition}`
99
95
  );
100
- const fieldLabel = (0, import_is_combined_field.isCombinedField)(field) ? field.label : fieldDefinition?.label;
96
+ const fieldLabel = !!field.children ? field.label : fieldDefinition?.label;
101
97
  const renderedControl = layout.openAs === "modal" ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
102
98
  import_modal.default,
103
99
  {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/dataform-layouts/panel/index.tsx"],
4
- "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalVStack as VStack,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { useState, useContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport type {\n\tFieldLayoutProps,\n\tFormField,\n\tNormalizedField,\n\tNormalizedPanelLayout,\n\tPanelLayout,\n\tSimpleFormField,\n} from '../../types';\nimport DataFormContext from '../../components/dataform-context';\nimport { isCombinedField } from '../is-combined-field';\nimport { normalizeLayout } from '../normalize-form-fields';\nimport PanelDropdown from './dropdown';\nimport PanelModal from './modal';\nimport { getSummaryFields } from '../get-summary-fields';\n\nconst getFieldDefinition = < Item, >(\n\tfield: FormField,\n\tfields: NormalizedField< Item >[]\n) => {\n\tconst fieldDefinition = fields.find( ( _field ) => _field.id === field.id );\n\n\tif ( ! fieldDefinition ) {\n\t\treturn fields.find( ( _field ) => {\n\t\t\tif ( isCombinedField( field ) ) {\n\t\t\t\tconst simpleChildren = field.children.filter(\n\t\t\t\t\t( child ): child is string | SimpleFormField =>\n\t\t\t\t\t\ttypeof child === 'string' || ! isCombinedField( child )\n\t\t\t\t);\n\n\t\t\t\tif ( simpleChildren.length === 0 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tconst firstChildFieldId =\n\t\t\t\t\ttypeof simpleChildren[ 0 ] === 'string'\n\t\t\t\t\t\t? simpleChildren[ 0 ]\n\t\t\t\t\t\t: simpleChildren[ 0 ].id;\n\n\t\t\t\treturn _field.id === firstChildFieldId;\n\t\t\t}\n\n\t\t\treturn _field.id === field.id;\n\t\t} );\n\t}\n\treturn fieldDefinition;\n};\n\n/**\n * Determines the field definition and summary fields for a panel layout.\n *\n * Summary fields are determined with the following priority:\n * 1. Use layout.summary fields if they exist\n * 2. Fall back to the field definition that matches the form field's id\n * 3. If the form field id doesn't exist, pick the first child field\n * 4. If no field definition is found, return empty summary fields\n *\n * @param layout - The normalized panel layout configuration\n * @param field - The form field to get definition for\n * @param fields - Array of normalized field definitions\n * @return Object containing fieldDefinition and summaryFields\n */\nconst getFieldDefinitionAndSummaryFields = < Item, >(\n\tlayout: NormalizedPanelLayout,\n\tfield: FormField,\n\tfields: NormalizedField< Item >[]\n) => {\n\tconst summaryFields = getSummaryFields( layout.summary, fields );\n\tconst fieldDefinition = getFieldDefinition( field, fields );\n\n\tif ( summaryFields.length === 0 ) {\n\t\treturn {\n\t\t\tsummaryFields: fieldDefinition ? [ fieldDefinition ] : [],\n\t\t\tfieldDefinition,\n\t\t};\n\t}\n\n\treturn {\n\t\tsummaryFields,\n\t\tfieldDefinition,\n\t};\n};\n\nexport default function FormPanelField< Item >( {\n\tdata,\n\tfield,\n\tonChange,\n\tvalidity,\n}: FieldLayoutProps< Item > ) {\n\tconst { fields } = useContext( DataFormContext );\n\n\tconst layout: NormalizedPanelLayout = normalizeLayout( {\n\t\t...field.layout,\n\t\ttype: 'panel',\n\t} as PanelLayout ) as NormalizedPanelLayout;\n\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the popover's anchor updates.\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState< HTMLElement | null >(\n\t\tnull\n\t);\n\n\tconst { fieldDefinition, summaryFields } =\n\t\tgetFieldDefinitionAndSummaryFields( layout, field, fields );\n\n\tif ( ! fieldDefinition ) {\n\t\treturn null;\n\t}\n\n\tconst labelPosition = layout.labelPosition;\n\tconst labelClassName = clsx(\n\t\t'dataforms-layouts-panel__field-label',\n\t\t`dataforms-layouts-panel__field-label--label-position-${ labelPosition }`\n\t);\n\tconst fieldLabel = isCombinedField( field )\n\t\t? field.label\n\t\t: fieldDefinition?.label;\n\n\tconst renderedControl =\n\t\tlayout.openAs === 'modal' ? (\n\t\t\t<PanelModal\n\t\t\t\tdata={ data }\n\t\t\t\tfield={ field }\n\t\t\t\tonChange={ onChange }\n\t\t\t\tlabelPosition={ labelPosition }\n\t\t\t\tsummaryFields={ summaryFields }\n\t\t\t\tfieldDefinition={ fieldDefinition }\n\t\t\t/>\n\t\t) : (\n\t\t\t<PanelDropdown\n\t\t\t\tdata={ data }\n\t\t\t\tfield={ field }\n\t\t\t\tonChange={ onChange }\n\t\t\t\tvalidity={ validity }\n\t\t\t\tlabelPosition={ labelPosition }\n\t\t\t\tsummaryFields={ summaryFields }\n\t\t\t\tfieldDefinition={ fieldDefinition }\n\t\t\t\tpopoverAnchor={ popoverAnchor }\n\t\t\t/>\n\t\t);\n\n\tif ( labelPosition === 'top' ) {\n\t\treturn (\n\t\t\t<VStack className=\"dataforms-layouts-panel__field\" spacing={ 0 }>\n\t\t\t\t<div\n\t\t\t\t\tclassName={ labelClassName }\n\t\t\t\t\tstyle={ { paddingBottom: 0 } }\n\t\t\t\t>\n\t\t\t\t\t{ fieldLabel }\n\t\t\t\t</div>\n\t\t\t\t<div className=\"dataforms-layouts-panel__field-control\">\n\t\t\t\t\t{ renderedControl }\n\t\t\t\t</div>\n\t\t\t</VStack>\n\t\t);\n\t}\n\n\tif ( labelPosition === 'none' ) {\n\t\treturn (\n\t\t\t<div className=\"dataforms-layouts-panel__field\">\n\t\t\t\t{ renderedControl }\n\t\t\t</div>\n\t\t);\n\t}\n\n\t// Defaults to label position side.\n\treturn (\n\t\t<HStack\n\t\t\tref={ setPopoverAnchor }\n\t\t\tclassName=\"dataforms-layouts-panel__field\"\n\t\t>\n\t\t\t<div className={ labelClassName }>{ fieldLabel }</div>\n\t\t\t<div className=\"dataforms-layouts-panel__field-control\">\n\t\t\t\t{ renderedControl }\n\t\t\t</div>\n\t\t</HStack>\n\t);\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalVStack as VStack,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { useState, useContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport type {\n\tFieldLayoutProps,\n\tNormalizedField,\n\tNormalizedFormField,\n\tNormalizedPanelLayout,\n} from '../../types';\nimport DataFormContext from '../../components/dataform-context';\nimport PanelDropdown from './dropdown';\nimport PanelModal from './modal';\nimport { getSummaryFields } from '../get-summary-fields';\n\nconst getFieldDefinition = < Item, >(\n\tfield: NormalizedFormField,\n\tfields: NormalizedField< Item >[]\n) => {\n\tconst fieldDefinition = fields.find( ( _field ) => _field.id === field.id );\n\n\tif ( ! fieldDefinition ) {\n\t\treturn fields.find( ( _field ) => {\n\t\t\tif ( !! field.children ) {\n\t\t\t\tconst simpleChildren = field.children.filter(\n\t\t\t\t\t( child ) => ! child.children\n\t\t\t\t);\n\n\t\t\t\tif ( simpleChildren.length === 0 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\treturn _field.id === simpleChildren[ 0 ].id;\n\t\t\t}\n\n\t\t\treturn _field.id === field.id;\n\t\t} );\n\t}\n\n\treturn fieldDefinition;\n};\n\n/**\n * Determines the field definition and summary fields for a panel layout.\n *\n * Summary fields are determined with the following priority:\n * 1. Use layout.summary fields if they exist\n * 2. Fall back to the field definition that matches the form field's id\n * 3. If the form field id doesn't exist, pick the first child field\n * 4. If no field definition is found, return empty summary fields\n *\n * @param layout - The normalized panel layout configuration\n * @param field - The form field to get definition for\n * @param fields - Array of normalized field definitions\n * @return Object containing fieldDefinition and summaryFields\n */\nconst getFieldDefinitionAndSummaryFields = < Item, >(\n\tlayout: NormalizedPanelLayout,\n\tfield: NormalizedFormField,\n\tfields: NormalizedField< Item >[]\n) => {\n\tconst summaryFields = getSummaryFields( layout.summary, fields );\n\tconst fieldDefinition = getFieldDefinition( field, fields );\n\n\tif ( summaryFields.length === 0 ) {\n\t\treturn {\n\t\t\tsummaryFields: fieldDefinition ? [ fieldDefinition ] : [],\n\t\t\tfieldDefinition,\n\t\t};\n\t}\n\n\treturn {\n\t\tsummaryFields,\n\t\tfieldDefinition,\n\t};\n};\n\nexport default function FormPanelField< Item >( {\n\tdata,\n\tfield,\n\tonChange,\n\tvalidity,\n}: FieldLayoutProps< Item > ) {\n\tconst { fields } = useContext( DataFormContext );\n\tconst layout = field.layout as NormalizedPanelLayout;\n\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the popover's anchor updates.\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState< HTMLElement | null >(\n\t\tnull\n\t);\n\n\tconst { fieldDefinition, summaryFields } =\n\t\tgetFieldDefinitionAndSummaryFields( layout, field, fields );\n\n\tif ( ! fieldDefinition ) {\n\t\treturn null;\n\t}\n\n\tconst labelPosition = layout.labelPosition;\n\tconst labelClassName = clsx(\n\t\t'dataforms-layouts-panel__field-label',\n\t\t`dataforms-layouts-panel__field-label--label-position-${ labelPosition }`\n\t);\n\tconst fieldLabel = !! field.children ? field.label : fieldDefinition?.label;\n\n\tconst renderedControl =\n\t\tlayout.openAs === 'modal' ? (\n\t\t\t<PanelModal\n\t\t\t\tdata={ data }\n\t\t\t\tfield={ field }\n\t\t\t\tonChange={ onChange }\n\t\t\t\tlabelPosition={ labelPosition }\n\t\t\t\tsummaryFields={ summaryFields }\n\t\t\t\tfieldDefinition={ fieldDefinition }\n\t\t\t/>\n\t\t) : (\n\t\t\t<PanelDropdown\n\t\t\t\tdata={ data }\n\t\t\t\tfield={ field }\n\t\t\t\tonChange={ onChange }\n\t\t\t\tvalidity={ validity }\n\t\t\t\tlabelPosition={ labelPosition }\n\t\t\t\tsummaryFields={ summaryFields }\n\t\t\t\tfieldDefinition={ fieldDefinition }\n\t\t\t\tpopoverAnchor={ popoverAnchor }\n\t\t\t/>\n\t\t);\n\n\tif ( labelPosition === 'top' ) {\n\t\treturn (\n\t\t\t<VStack className=\"dataforms-layouts-panel__field\" spacing={ 0 }>\n\t\t\t\t<div\n\t\t\t\t\tclassName={ labelClassName }\n\t\t\t\t\tstyle={ { paddingBottom: 0 } }\n\t\t\t\t>\n\t\t\t\t\t{ fieldLabel }\n\t\t\t\t</div>\n\t\t\t\t<div className=\"dataforms-layouts-panel__field-control\">\n\t\t\t\t\t{ renderedControl }\n\t\t\t\t</div>\n\t\t\t</VStack>\n\t\t);\n\t}\n\n\tif ( labelPosition === 'none' ) {\n\t\treturn (\n\t\t\t<div className=\"dataforms-layouts-panel__field\">\n\t\t\t\t{ renderedControl }\n\t\t\t</div>\n\t\t);\n\t}\n\n\t// Defaults to label position side.\n\treturn (\n\t\t<HStack\n\t\t\tref={ setPopoverAnchor }\n\t\t\tclassName=\"dataforms-layouts-panel__field\"\n\t\t>\n\t\t\t<div className={ labelClassName }>{ fieldLabel }</div>\n\t\t\t<div className=\"dataforms-layouts-panel__field-control\">\n\t\t\t\t{ renderedControl }\n\t\t\t</div>\n\t\t</HStack>\n\t);\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAAiB;AAKjB,wBAGO;AACP,qBAAqC;AAWrC,8BAA4B;AAC5B,sBAA0B;AAC1B,mBAAuB;AACvB,gCAAiC;AA+F9B;AA7FH,IAAM,qBAAqB,CAC1B,OACA,WACI;AACJ,QAAM,kBAAkB,OAAO,KAAM,CAAE,WAAY,OAAO,OAAO,MAAM,EAAG;AAE1E,MAAK,CAAE,iBAAkB;AACxB,WAAO,OAAO,KAAM,CAAE,WAAY;AACjC,UAAK,CAAC,CAAE,MAAM,UAAW;AACxB,cAAM,iBAAiB,MAAM,SAAS;AAAA,UACrC,CAAE,UAAW,CAAE,MAAM;AAAA,QACtB;AAEA,YAAK,eAAe,WAAW,GAAI;AAClC,iBAAO;AAAA,QACR;AAEA,eAAO,OAAO,OAAO,eAAgB,CAAE,EAAE;AAAA,MAC1C;AAEA,aAAO,OAAO,OAAO,MAAM;AAAA,IAC5B,CAAE;AAAA,EACH;AAEA,SAAO;AACR;AAgBA,IAAM,qCAAqC,CAC1C,QACA,OACA,WACI;AACJ,QAAM,oBAAgB,4CAAkB,OAAO,SAAS,MAAO;AAC/D,QAAM,kBAAkB,mBAAoB,OAAO,MAAO;AAE1D,MAAK,cAAc,WAAW,GAAI;AACjC,WAAO;AAAA,MACN,eAAe,kBAAkB,CAAE,eAAgB,IAAI,CAAC;AAAA,MACxD;AAAA,IACD;AAAA,EACD;AAEA,SAAO;AAAA,IACN;AAAA,IACA;AAAA,EACD;AACD;AAEe,SAAR,eAAyC;AAAA,EAC/C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAA8B;AAC7B,QAAM,EAAE,OAAO,QAAI,2BAAY,wBAAAA,OAAgB;AAC/C,QAAM,SAAS,MAAM;AAIrB,QAAM,CAAE,eAAe,gBAAiB,QAAI;AAAA,IAC3C;AAAA,EACD;AAEA,QAAM,EAAE,iBAAiB,cAAc,IACtC,mCAAoC,QAAQ,OAAO,MAAO;AAE3D,MAAK,CAAE,iBAAkB;AACxB,WAAO;AAAA,EACR;AAEA,QAAM,gBAAgB,OAAO;AAC7B,QAAM,qBAAiB,YAAAC;AAAA,IACtB;AAAA,IACA,wDAAyD,aAAc;AAAA,EACxE;AACA,QAAM,aAAa,CAAC,CAAE,MAAM,WAAW,MAAM,QAAQ,iBAAiB;AAEtE,QAAM,kBACL,OAAO,WAAW,UACjB;AAAA,IAAC,aAAAC;AAAA,IAAA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,EACD,IAEA;AAAA,IAAC,gBAAAC;AAAA,IAAA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,EACD;AAGF,MAAK,kBAAkB,OAAQ;AAC9B,WACC,6CAAC,kBAAAC,sBAAA,EAAO,WAAU,kCAAiC,SAAU,GAC5D;AAAA;AAAA,QAAC;AAAA;AAAA,UACA,WAAY;AAAA,UACZ,OAAQ,EAAE,eAAe,EAAE;AAAA,UAEzB;AAAA;AAAA,MACH;AAAA,MACA,4CAAC,SAAI,WAAU,0CACZ,2BACH;AAAA,OACD;AAAA,EAEF;AAEA,MAAK,kBAAkB,QAAS;AAC/B,WACC,4CAAC,SAAI,WAAU,kCACZ,2BACH;AAAA,EAEF;AAGA,SACC;AAAA,IAAC,kBAAAC;AAAA,IAAA;AAAA,MACA,KAAM;AAAA,MACN,WAAU;AAAA,MAEV;AAAA,oDAAC,SAAI,WAAY,gBAAmB,sBAAY;AAAA,QAChD,4CAAC,SAAI,WAAU,0CACZ,2BACH;AAAA;AAAA;AAAA,EACD;AAEF;",
6
6
  "names": ["DataFormContext", "clsx", "PanelModal", "PanelDropdown", "VStack", "HStack"]
7
7
  }
@@ -26,22 +26,23 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
26
26
  mod
27
27
  ));
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+
30
+ // packages/dataviews/src/dataform-layouts/panel/modal.tsx
29
31
  var modal_exports = {};
30
32
  __export(modal_exports, {
31
33
  default: () => modal_default
32
34
  });
33
35
  module.exports = __toCommonJS(modal_exports);
34
- var import_jsx_runtime = require("react/jsx-runtime");
35
36
  var import_deepmerge = __toESM(require("deepmerge"));
36
37
  var import_components = require("@wordpress/components");
37
38
  var import_i18n = require("@wordpress/i18n");
38
39
  var import_element = require("@wordpress/element");
39
40
  var import_data_form_layout = require("../data-form-layout");
40
- var import_is_combined_field = require("../is-combined-field");
41
- var import_normalize_form_fields = require("../normalize-form-fields");
41
+ var import_normalize_form = require("../normalize-form");
42
42
  var import_summary_button = __toESM(require("./summary-button"));
43
43
  var import_use_form_validity = __toESM(require("../../hooks/use-form-validity"));
44
44
  var import_dataform_context = __toESM(require("../../components/dataform-context"));
45
+ var import_jsx_runtime = require("react/jsx-runtime");
45
46
  function ModalContent({
46
47
  data,
47
48
  field,
@@ -56,10 +57,10 @@ function ModalContent({
56
57
  }, [data, changes]);
57
58
  const form = (0, import_element.useMemo)(
58
59
  () => ({
59
- layout: import_normalize_form_fields.DEFAULT_LAYOUT,
60
- fields: (0, import_is_combined_field.isCombinedField)(field) ? field.children : (
60
+ layout: import_normalize_form.DEFAULT_LAYOUT,
61
+ fields: !!field.children ? field.children : (
61
62
  // If not explicit children return the field id itself.
62
- [{ id: field.id }]
63
+ [{ id: field.id, layout: import_normalize_form.DEFAULT_LAYOUT }]
63
64
  )
64
65
  }),
65
66
  [field]
@@ -98,7 +99,7 @@ function ModalContent({
98
99
  data: modalData,
99
100
  field: childField,
100
101
  onChange: handleOnChange,
101
- hideLabelFromVision: (form?.fields ?? []).length < 2,
102
+ hideLabelFromVision: form.fields.length < 2,
102
103
  validity: childFieldValidity
103
104
  },
104
105
  childField.id
@@ -146,7 +147,7 @@ function PanelModal({
146
147
  fieldDefinition
147
148
  }) {
148
149
  const [isOpen, setIsOpen] = (0, import_element.useState)(false);
149
- const fieldLabel = (0, import_is_combined_field.isCombinedField)(field) ? field.label : fieldDefinition?.label;
150
+ const fieldLabel = !!field.children ? field.label : fieldDefinition?.label;
150
151
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
151
152
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
152
153
  import_summary_button.default,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/dataform-layouts/panel/modal.tsx"],
4
- "sourcesContent": ["/**\n * External dependencies\n */\nimport deepMerge from 'deepmerge';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalHStack as HStack,\n\t__experimentalSpacer as Spacer,\n\tButton,\n\tModal,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useContext, useState, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport type { Field, Form, FormField, NormalizedField } from '../../types';\nimport { DataFormLayout } from '../data-form-layout';\nimport { isCombinedField } from '../is-combined-field';\nimport { DEFAULT_LAYOUT } from '../normalize-form-fields';\nimport SummaryButton from './summary-button';\nimport useFormValidity from '../../hooks/use-form-validity';\nimport DataFormContext from '../../components/dataform-context';\n\nfunction ModalContent< Item >( {\n\tdata,\n\tfield,\n\tonChange,\n\tfieldLabel,\n\tonClose,\n}: {\n\tdata: Item;\n\tfield: FormField;\n\tonChange: ( data: Partial< Item > ) => void;\n\tonClose: () => void;\n\tfieldLabel: string;\n} ) {\n\tconst { fields } = useContext( DataFormContext );\n\tconst [ changes, setChanges ] = useState< Partial< Item > >( {} );\n\tconst modalData = useMemo( () => {\n\t\treturn deepMerge( data, changes );\n\t}, [ data, changes ] );\n\n\tconst form: Form = useMemo(\n\t\t(): Form => ( {\n\t\t\tlayout: DEFAULT_LAYOUT,\n\t\t\tfields: isCombinedField( field )\n\t\t\t\t? field.children\n\t\t\t\t: // If not explicit children return the field id itself.\n\t\t\t\t [ { id: field.id } ],\n\t\t} ),\n\t\t[ field ]\n\t);\n\n\tconst { validity } = useFormValidity(\n\t\tmodalData,\n\t\tfields as Field< any >[],\n\t\tform\n\t);\n\n\tconst onApply = () => {\n\t\tonChange( changes );\n\t\tonClose();\n\t};\n\n\tconst handleOnChange = ( newValue: Partial< Item > ) => {\n\t\tsetChanges( ( prev ) => deepMerge( prev, newValue ) );\n\t};\n\n\treturn (\n\t\t<Modal\n\t\t\tclassName=\"dataforms-layouts-panel__modal\"\n\t\t\tonRequestClose={ onClose }\n\t\t\tisFullScreen={ false }\n\t\t\ttitle={ fieldLabel }\n\t\t\tsize=\"medium\"\n\t\t>\n\t\t\t<DataFormLayout\n\t\t\t\tdata={ modalData }\n\t\t\t\tform={ form }\n\t\t\t\tonChange={ handleOnChange }\n\t\t\t\tvalidity={ validity }\n\t\t\t>\n\t\t\t\t{ ( FieldLayout, childField, childFieldValidity ) => (\n\t\t\t\t\t<FieldLayout\n\t\t\t\t\t\tkey={ childField.id }\n\t\t\t\t\t\tdata={ modalData }\n\t\t\t\t\t\tfield={ childField }\n\t\t\t\t\t\tonChange={ handleOnChange }\n\t\t\t\t\t\thideLabelFromVision={\n\t\t\t\t\t\t\t( form?.fields ?? [] ).length < 2\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvalidity={ childFieldValidity }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</DataFormLayout>\n\t\t\t<HStack\n\t\t\t\tclassName=\"dataforms-layouts-panel__modal-footer\"\n\t\t\t\tspacing={ 3 }\n\t\t\t>\n\t\t\t\t<Spacer />\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t</Button>\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\tonClick={ onApply }\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Apply' ) }\n\t\t\t\t</Button>\n\t\t\t</HStack>\n\t\t</Modal>\n\t);\n}\n\nfunction PanelModal< Item >( {\n\tdata,\n\tfield,\n\tonChange,\n\tlabelPosition,\n\tsummaryFields,\n\tfieldDefinition,\n}: {\n\tdata: Item;\n\tfield: FormField;\n\tonChange: ( value: any ) => void;\n\tlabelPosition: 'side' | 'top' | 'none';\n\tsummaryFields: NormalizedField< Item >[];\n\tfieldDefinition: NormalizedField< Item >;\n} ) {\n\tconst [ isOpen, setIsOpen ] = useState( false );\n\n\tconst fieldLabel = isCombinedField( field )\n\t\t? field.label\n\t\t: fieldDefinition?.label;\n\n\treturn (\n\t\t<>\n\t\t\t<SummaryButton\n\t\t\t\tsummaryFields={ summaryFields }\n\t\t\t\tdata={ data }\n\t\t\t\tlabelPosition={ labelPosition }\n\t\t\t\tfieldLabel={ fieldLabel }\n\t\t\t\tdisabled={ fieldDefinition.readOnly === true }\n\t\t\t\tonClick={ () => setIsOpen( true ) }\n\t\t\t\taria-expanded={ isOpen }\n\t\t\t/>\n\t\t\t{ isOpen && (\n\t\t\t\t<ModalContent\n\t\t\t\t\tdata={ data }\n\t\t\t\t\tfield={ field }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\tfieldLabel={ fieldLabel ?? '' }\n\t\t\t\t\tonClose={ () => setIsOpen( false ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default PanelModal;\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * External dependencies\n */\nimport deepMerge from 'deepmerge';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalHStack as HStack,\n\t__experimentalSpacer as Spacer,\n\tButton,\n\tModal,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useContext, useState, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport type {\n\tField,\n\tNormalizedForm,\n\tNormalizedFormField,\n\tNormalizedField,\n} from '../../types';\nimport { DataFormLayout } from '../data-form-layout';\nimport { DEFAULT_LAYOUT } from '../normalize-form';\nimport SummaryButton from './summary-button';\nimport useFormValidity from '../../hooks/use-form-validity';\nimport DataFormContext from '../../components/dataform-context';\n\nfunction ModalContent< Item >( {\n\tdata,\n\tfield,\n\tonChange,\n\tfieldLabel,\n\tonClose,\n}: {\n\tdata: Item;\n\tfield: NormalizedFormField;\n\tonChange: ( data: Partial< Item > ) => void;\n\tonClose: () => void;\n\tfieldLabel: string;\n} ) {\n\tconst { fields } = useContext( DataFormContext );\n\tconst [ changes, setChanges ] = useState< Partial< Item > >( {} );\n\tconst modalData = useMemo( () => {\n\t\treturn deepMerge( data, changes );\n\t}, [ data, changes ] );\n\n\tconst form: NormalizedForm = useMemo(\n\t\t() => ( {\n\t\t\tlayout: DEFAULT_LAYOUT,\n\t\t\tfields: !! field.children\n\t\t\t\t? field.children\n\t\t\t\t: // If not explicit children return the field id itself.\n\t\t\t\t [ { id: field.id, layout: DEFAULT_LAYOUT } ],\n\t\t} ),\n\t\t[ field ]\n\t);\n\n\tconst { validity } = useFormValidity(\n\t\tmodalData,\n\t\tfields as Field< any >[],\n\t\tform\n\t);\n\n\tconst onApply = () => {\n\t\tonChange( changes );\n\t\tonClose();\n\t};\n\n\tconst handleOnChange = ( newValue: Partial< Item > ) => {\n\t\tsetChanges( ( prev ) => deepMerge( prev, newValue ) );\n\t};\n\n\treturn (\n\t\t<Modal\n\t\t\tclassName=\"dataforms-layouts-panel__modal\"\n\t\t\tonRequestClose={ onClose }\n\t\t\tisFullScreen={ false }\n\t\t\ttitle={ fieldLabel }\n\t\t\tsize=\"medium\"\n\t\t>\n\t\t\t<DataFormLayout\n\t\t\t\tdata={ modalData }\n\t\t\t\tform={ form }\n\t\t\t\tonChange={ handleOnChange }\n\t\t\t\tvalidity={ validity }\n\t\t\t>\n\t\t\t\t{ ( FieldLayout, childField, childFieldValidity ) => (\n\t\t\t\t\t<FieldLayout\n\t\t\t\t\t\tkey={ childField.id }\n\t\t\t\t\t\tdata={ modalData }\n\t\t\t\t\t\tfield={ childField }\n\t\t\t\t\t\tonChange={ handleOnChange }\n\t\t\t\t\t\thideLabelFromVision={ form.fields.length < 2 }\n\t\t\t\t\t\tvalidity={ childFieldValidity }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</DataFormLayout>\n\t\t\t<HStack\n\t\t\t\tclassName=\"dataforms-layouts-panel__modal-footer\"\n\t\t\t\tspacing={ 3 }\n\t\t\t>\n\t\t\t\t<Spacer />\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t</Button>\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\tonClick={ onApply }\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Apply' ) }\n\t\t\t\t</Button>\n\t\t\t</HStack>\n\t\t</Modal>\n\t);\n}\n\nfunction PanelModal< Item >( {\n\tdata,\n\tfield,\n\tonChange,\n\tlabelPosition,\n\tsummaryFields,\n\tfieldDefinition,\n}: {\n\tdata: Item;\n\tfield: NormalizedFormField;\n\tonChange: ( value: any ) => void;\n\tlabelPosition: 'side' | 'top' | 'none';\n\tsummaryFields: NormalizedField< Item >[];\n\tfieldDefinition: NormalizedField< Item >;\n} ) {\n\tconst [ isOpen, setIsOpen ] = useState( false );\n\n\tconst fieldLabel = !! field.children ? field.label : fieldDefinition?.label;\n\n\treturn (\n\t\t<>\n\t\t\t<SummaryButton\n\t\t\t\tsummaryFields={ summaryFields }\n\t\t\t\tdata={ data }\n\t\t\t\tlabelPosition={ labelPosition }\n\t\t\t\tfieldLabel={ fieldLabel }\n\t\t\t\tdisabled={ fieldDefinition.readOnly === true }\n\t\t\t\tonClick={ () => setIsOpen( true ) }\n\t\t\t\taria-expanded={ isOpen }\n\t\t\t/>\n\t\t\t{ isOpen && (\n\t\t\t\t<ModalContent\n\t\t\t\t\tdata={ data }\n\t\t\t\t\tfield={ field }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\tfieldLabel={ fieldLabel ?? '' }\n\t\t\t\t\tonClose={ () => setIsOpen( false ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default PanelModal;\n"],
5
+ "mappings": "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",
6
6
  "names": ["DataFormContext", "deepMerge", "useFormValidity", "HStack", "Spacer", "SummaryButton"]
7
7
  }
@@ -16,14 +16,16 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // packages/dataviews/src/dataform-layouts/panel/summary-button.tsx
19
21
  var summary_button_exports = {};
20
22
  __export(summary_button_exports, {
21
23
  default: () => summary_button_default
22
24
  });
23
25
  module.exports = __toCommonJS(summary_button_exports);
24
- var import_jsx_runtime = require("react/jsx-runtime");
25
26
  var import_components = require("@wordpress/components");
26
27
  var import_i18n = require("@wordpress/i18n");
28
+ var import_jsx_runtime = require("react/jsx-runtime");
27
29
  function SummaryButton({
28
30
  summaryFields,
29
31
  data,
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/dataform-layouts/panel/summary-button.tsx"],
4
4
  "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { Button } from '@wordpress/components';\nimport { sprintf, _x } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport type { NormalizedField } from '../../types';\n\nfunction SummaryButton< Item >( {\n\tsummaryFields,\n\tdata,\n\tlabelPosition,\n\tfieldLabel,\n\tdisabled,\n\tonClick,\n\t'aria-expanded': ariaExpanded,\n}: {\n\tsummaryFields: NormalizedField< Item >[];\n\tdata: Item;\n\tlabelPosition: 'side' | 'top' | 'none';\n\tfieldLabel?: string;\n\tdisabled?: boolean;\n\tonClick: () => void;\n\t'aria-expanded'?: boolean;\n} ) {\n\treturn (\n\t\t<Button\n\t\t\tclassName=\"dataforms-layouts-panel__summary-button\"\n\t\t\tsize=\"compact\"\n\t\t\tvariant={\n\t\t\t\t[ 'none', 'top' ].includes( labelPosition )\n\t\t\t\t\t? 'link'\n\t\t\t\t\t: 'tertiary'\n\t\t\t}\n\t\t\taria-expanded={ ariaExpanded }\n\t\t\taria-label={ sprintf(\n\t\t\t\t// translators: %s: Field name.\n\t\t\t\t_x( 'Edit %s', 'field' ),\n\t\t\t\tfieldLabel || ''\n\t\t\t) }\n\t\t\tonClick={ onClick }\n\t\t\tdisabled={ disabled }\n\t\t\taccessibleWhenDisabled\n\t\t\tstyle={\n\t\t\t\tsummaryFields.length > 1\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tminHeight: 'auto',\n\t\t\t\t\t\t\theight: 'auto',\n\t\t\t\t\t\t\talignItems: 'flex-start',\n\t\t\t\t\t }\n\t\t\t\t\t: undefined\n\t\t\t}\n\t\t>\n\t\t\t{ summaryFields.length > 1 ? (\n\t\t\t\t<div\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\tflexDirection: 'column',\n\t\t\t\t\t\talignItems: 'flex-start',\n\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t\tgap: '2px',\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ summaryFields.map( ( summaryField ) => (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tkey={ summaryField.id }\n\t\t\t\t\t\t\tstyle={ { width: '100%' } }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<summaryField.render\n\t\t\t\t\t\t\t\titem={ data }\n\t\t\t\t\t\t\t\tfield={ summaryField }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) ) }\n\t\t\t\t</div>\n\t\t\t) : (\n\t\t\t\tsummaryFields.map( ( summaryField ) => (\n\t\t\t\t\t<summaryField.render\n\t\t\t\t\t\tkey={ summaryField.id }\n\t\t\t\t\t\titem={ data }\n\t\t\t\t\t\tfield={ summaryField }\n\t\t\t\t\t/>\n\t\t\t\t) )\n\t\t\t) }\n\t\t</Button>\n\t);\n}\n\nexport default SummaryButton;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAuEO;AApEP,wBAAuB;AACvB,kBAA4B;AAO5B,SAAS,cAAuB;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,iBAAiB;AAClB,GAQI;AACH,SACC;AAAA,IAAC;AAAA;AAAA,MACA,WAAU;AAAA,MACV,MAAK;AAAA,MACL,SACC,CAAE,QAAQ,KAAM,EAAE,SAAU,aAAc,IACvC,SACA;AAAA,MAEJ,iBAAgB;AAAA,MAChB,kBAAa;AAAA;AAAA,YAEZ,gBAAI,WAAW,OAAQ;AAAA,QACvB,cAAc;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MACA,wBAAsB;AAAA,MACtB,OACC,cAAc,SAAS,IACpB;AAAA,QACA,WAAW;AAAA,QACX,QAAQ;AAAA,QACR,YAAY;AAAA,MACZ,IACA;AAAA,MAGF,wBAAc,SAAS,IACxB;AAAA,QAAC;AAAA;AAAA,UACA,OAAQ;AAAA,YACP,SAAS;AAAA,YACT,eAAe;AAAA,YACf,YAAY;AAAA,YACZ,OAAO;AAAA,YACP,KAAK;AAAA,UACN;AAAA,UAEE,wBAAc,IAAK,CAAE,iBACtB;AAAA,YAAC;AAAA;AAAA,cAEA,OAAQ,EAAE,OAAO,OAAO;AAAA,cAExB;AAAA,gBAAC,aAAa;AAAA,gBAAb;AAAA,kBACA,MAAO;AAAA,kBACP,OAAQ;AAAA;AAAA,cACT;AAAA;AAAA,YANM,aAAa;AAAA,UAOpB,CACC;AAAA;AAAA,MACH,IAEA,cAAc,IAAK,CAAE,iBACpB;AAAA,QAAC,aAAa;AAAA,QAAb;AAAA,UAEA,MAAO;AAAA,UACP,OAAQ;AAAA;AAAA,QAFF,aAAa;AAAA,MAGpB,CACC;AAAA;AAAA,EAEJ;AAEF;AAEA,IAAO,yBAAQ;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,wBAAuB;AACvB,kBAA4B;AAmErB;AA5DP,SAAS,cAAuB;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,iBAAiB;AAClB,GAQI;AACH,SACC;AAAA,IAAC;AAAA;AAAA,MACA,WAAU;AAAA,MACV,MAAK;AAAA,MACL,SACC,CAAE,QAAQ,KAAM,EAAE,SAAU,aAAc,IACvC,SACA;AAAA,MAEJ,iBAAgB;AAAA,MAChB,kBAAa;AAAA;AAAA,YAEZ,gBAAI,WAAW,OAAQ;AAAA,QACvB,cAAc;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MACA,wBAAsB;AAAA,MACtB,OACC,cAAc,SAAS,IACpB;AAAA,QACA,WAAW;AAAA,QACX,QAAQ;AAAA,QACR,YAAY;AAAA,MACZ,IACA;AAAA,MAGF,wBAAc,SAAS,IACxB;AAAA,QAAC;AAAA;AAAA,UACA,OAAQ;AAAA,YACP,SAAS;AAAA,YACT,eAAe;AAAA,YACf,YAAY;AAAA,YACZ,OAAO;AAAA,YACP,KAAK;AAAA,UACN;AAAA,UAEE,wBAAc,IAAK,CAAE,iBACtB;AAAA,YAAC;AAAA;AAAA,cAEA,OAAQ,EAAE,OAAO,OAAO;AAAA,cAExB;AAAA,gBAAC,aAAa;AAAA,gBAAb;AAAA,kBACA,MAAO;AAAA,kBACP,OAAQ;AAAA;AAAA,cACT;AAAA;AAAA,YANM,aAAa;AAAA,UAOpB,CACC;AAAA;AAAA,MACH,IAEA,cAAc,IAAK,CAAE,iBACpB;AAAA,QAAC,aAAa;AAAA,QAAb;AAAA,UAEA,MAAO;AAAA,UACP,OAAQ;AAAA;AAAA,QAFF,aAAa;AAAA,MAGpB,CACC;AAAA;AAAA,EAEJ;AAEF;AAEA,IAAO,yBAAQ;",
6
6
  "names": []
7
7
  }
@@ -26,19 +26,20 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
26
26
  mod
27
27
  ));
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+
30
+ // packages/dataviews/src/dataform-layouts/regular/index.tsx
29
31
  var regular_exports = {};
30
32
  __export(regular_exports, {
31
33
  default: () => FormRegularField
32
34
  });
33
35
  module.exports = __toCommonJS(regular_exports);
34
- var import_jsx_runtime = require("react/jsx-runtime");
35
36
  var import_clsx = __toESM(require("clsx"));
36
37
  var import_element = require("@wordpress/element");
37
38
  var import_components = require("@wordpress/components");
38
39
  var import_dataform_context = __toESM(require("../../components/dataform-context"));
39
40
  var import_data_form_layout = require("../data-form-layout");
40
- var import_is_combined_field = require("../is-combined-field");
41
- var import_normalize_form_fields = require("../normalize-form-fields");
41
+ var import_normalize_form = require("../normalize-form");
42
+ var import_jsx_runtime = require("react/jsx-runtime");
42
43
  function Header({ title }) {
43
44
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.__experimentalVStack, { className: "dataforms-layouts-regular__header", spacing: 4, children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_components.__experimentalHStack, { alignment: "center", children: [
44
45
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.__experimentalHeading, { level: 2, size: 13, children: title }),
@@ -53,14 +54,15 @@ function FormRegularField({
53
54
  validity
54
55
  }) {
55
56
  const { fields } = (0, import_element.useContext)(import_dataform_context.default);
57
+ const layout = field.layout;
56
58
  const form = (0, import_element.useMemo)(
57
59
  () => ({
58
- layout: import_normalize_form_fields.DEFAULT_LAYOUT,
59
- fields: (0, import_is_combined_field.isCombinedField)(field) ? field.children : []
60
+ layout: import_normalize_form.DEFAULT_LAYOUT,
61
+ fields: !!field.children ? field.children : []
60
62
  }),
61
63
  [field]
62
64
  );
63
- if ((0, import_is_combined_field.isCombinedField)(field)) {
65
+ if (!!field.children) {
64
66
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
65
67
  !hideLabelFromVision && field.label && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Header, { title: field.label }),
66
68
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
@@ -74,10 +76,6 @@ function FormRegularField({
74
76
  )
75
77
  ] });
76
78
  }
77
- const layout = (0, import_normalize_form_fields.normalizeLayout)({
78
- ...field.layout,
79
- type: "regular"
80
- });
81
79
  const labelPosition = layout.labelPosition;
82
80
  const fieldDefinition = fields.find(
83
81
  (fieldDef) => fieldDef.id === field.id
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/dataform-layouts/regular/index.tsx"],
4
- "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useContext, useMemo } from '@wordpress/element';\nimport {\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\t__experimentalHeading as Heading,\n\t__experimentalSpacer as Spacer,\n\tBaseControl,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport type {\n\tForm,\n\tFieldLayoutProps,\n\tNormalizedRegularLayout,\n} from '../../types';\nimport DataFormContext from '../../components/dataform-context';\nimport { DataFormLayout } from '../data-form-layout';\nimport { isCombinedField } from '../is-combined-field';\nimport { DEFAULT_LAYOUT, normalizeLayout } from '../normalize-form-fields';\n\nfunction Header( { title }: { title: string } ) {\n\treturn (\n\t\t<VStack className=\"dataforms-layouts-regular__header\" spacing={ 4 }>\n\t\t\t<HStack alignment=\"center\">\n\t\t\t\t<Heading level={ 2 } size={ 13 }>\n\t\t\t\t\t{ title }\n\t\t\t\t</Heading>\n\t\t\t\t<Spacer />\n\t\t\t</HStack>\n\t\t</VStack>\n\t);\n}\n\nexport default function FormRegularField< Item >( {\n\tdata,\n\tfield,\n\tonChange,\n\thideLabelFromVision,\n\tvalidity,\n}: FieldLayoutProps< Item > ) {\n\tconst { fields } = useContext( DataFormContext );\n\n\tconst form: Form = useMemo(\n\t\t(): Form => ( {\n\t\t\tlayout: DEFAULT_LAYOUT,\n\t\t\tfields: isCombinedField( field ) ? field.children : [],\n\t\t} ),\n\t\t[ field ]\n\t);\n\n\tif ( isCombinedField( field ) ) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ ! hideLabelFromVision && field.label && (\n\t\t\t\t\t<Header title={ field.label } />\n\t\t\t\t) }\n\t\t\t\t<DataFormLayout\n\t\t\t\t\tdata={ data }\n\t\t\t\t\tform={ form }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\tvalidity={ validity?.children }\n\t\t\t\t/>\n\t\t\t</>\n\t\t);\n\t}\n\n\tconst layout: NormalizedRegularLayout = normalizeLayout( {\n\t\t...field.layout,\n\t\ttype: 'regular',\n\t} ) as NormalizedRegularLayout;\n\n\tconst labelPosition = layout.labelPosition;\n\tconst fieldDefinition = fields.find(\n\t\t( fieldDef ) => fieldDef.id === field.id\n\t);\n\n\tif ( ! fieldDefinition || ! fieldDefinition.Edit ) {\n\t\treturn null;\n\t}\n\n\tif ( labelPosition === 'side' ) {\n\t\treturn (\n\t\t\t<HStack className=\"dataforms-layouts-regular__field\">\n\t\t\t\t<div\n\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t'dataforms-layouts-regular__field-label',\n\t\t\t\t\t\t`dataforms-layouts-regular__field-label--label-position-${ labelPosition }`\n\t\t\t\t\t) }\n\t\t\t\t>\n\t\t\t\t\t{ fieldDefinition.label }\n\t\t\t\t</div>\n\t\t\t\t<div className=\"dataforms-layouts-regular__field-control\">\n\t\t\t\t\t{ fieldDefinition.readOnly === true ? (\n\t\t\t\t\t\t<fieldDefinition.render\n\t\t\t\t\t\t\titem={ data }\n\t\t\t\t\t\t\tfield={ fieldDefinition }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<fieldDefinition.Edit\n\t\t\t\t\t\t\tkey={ fieldDefinition.id }\n\t\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\t\tfield={ fieldDefinition }\n\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t\tvalidity={ validity }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t</HStack>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div className=\"dataforms-layouts-regular__field\">\n\t\t\t{ fieldDefinition.readOnly === true ? (\n\t\t\t\t<>\n\t\t\t\t\t<>\n\t\t\t\t\t\t{ ! hideLabelFromVision && labelPosition !== 'none' && (\n\t\t\t\t\t\t\t<BaseControl.VisualLabel>\n\t\t\t\t\t\t\t\t{ fieldDefinition.label }\n\t\t\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<fieldDefinition.render\n\t\t\t\t\t\t\titem={ data }\n\t\t\t\t\t\t\tfield={ fieldDefinition }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</>\n\t\t\t\t</>\n\t\t\t) : (\n\t\t\t\t<fieldDefinition.Edit\n\t\t\t\t\tdata={ data }\n\t\t\t\t\tfield={ fieldDefinition }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\thideLabelFromVision={\n\t\t\t\t\t\tlabelPosition === 'none' ? true : hideLabelFromVision\n\t\t\t\t\t}\n\t\t\t\t\tvalidity={ validity }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAiCG;AA9BH,kBAAiB;AAKjB,qBAAoC;AACpC,wBAMO;AAUP,8BAA4B;AAC5B,8BAA+B;AAC/B,+BAAgC;AAChC,mCAAgD;AAEhD,SAAS,OAAQ,EAAE,MAAM,GAAuB;AAC/C,SACC,4CAAC,kBAAAA,sBAAA,EAAO,WAAU,qCAAoC,SAAU,GAC/D,uDAAC,kBAAAC,sBAAA,EAAO,WAAU,UACjB;AAAA,gDAAC,kBAAAC,uBAAA,EAAQ,OAAQ,GAAI,MAAO,IACzB,iBACH;AAAA,IACA,4CAAC,kBAAAC,sBAAA,EAAO;AAAA,KACT,GACD;AAEF;AAEe,SAAR,iBAA2C;AAAA,EACjD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAA8B;AAC7B,QAAM,EAAE,OAAO,QAAI,2BAAY,wBAAAC,OAAgB;AAE/C,QAAM,WAAa;AAAA,IAClB,OAAc;AAAA,MACb,QAAQ;AAAA,MACR,YAAQ,0CAAiB,KAAM,IAAI,MAAM,WAAW,CAAC;AAAA,IACtD;AAAA,IACA,CAAE,KAAM;AAAA,EACT;AAEA,UAAK,0CAAiB,KAAM,GAAI;AAC/B,WACC,4EACG;AAAA,OAAE,uBAAuB,MAAM,SAChC,4CAAC,UAAO,OAAQ,MAAM,OAAQ;AAAA,MAE/B;AAAA,QAAC;AAAA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA,UAAW,UAAU;AAAA;AAAA,MACtB;AAAA,OACD;AAAA,EAEF;AAEA,QAAM,aAAkC,8CAAiB;AAAA,IACxD,GAAG,MAAM;AAAA,IACT,MAAM;AAAA,EACP,CAAE;AAEF,QAAM,gBAAgB,OAAO;AAC7B,QAAM,kBAAkB,OAAO;AAAA,IAC9B,CAAE,aAAc,SAAS,OAAO,MAAM;AAAA,EACvC;AAEA,MAAK,CAAE,mBAAmB,CAAE,gBAAgB,MAAO;AAClD,WAAO;AAAA,EACR;AAEA,MAAK,kBAAkB,QAAS;AAC/B,WACC,6CAAC,kBAAAH,sBAAA,EAAO,WAAU,oCACjB;AAAA;AAAA,QAAC;AAAA;AAAA,UACA,eAAY,YAAAI;AAAA,YACX;AAAA,YACA,0DAA2D,aAAc;AAAA,UAC1E;AAAA,UAEE,0BAAgB;AAAA;AAAA,MACnB;AAAA,MACA,4CAAC,SAAI,WAAU,4CACZ,0BAAgB,aAAa,OAC9B;AAAA,QAAC,gBAAgB;AAAA,QAAhB;AAAA,UACA,MAAO;AAAA,UACP,OAAQ;AAAA;AAAA,MACT,IAEA;AAAA,QAAC,gBAAgB;AAAA,QAAhB;AAAA,UAEA;AAAA,UACA,OAAQ;AAAA,UACR;AAAA,UACA,qBAAmB;AAAA,UACnB;AAAA;AAAA,QALM,gBAAgB;AAAA,MAMvB,GAEF;AAAA,OACD;AAAA,EAEF;AAEA,SACC,4CAAC,SAAI,WAAU,oCACZ,0BAAgB,aAAa,OAC9B,2EACC,sFACG;AAAA,KAAE,uBAAuB,kBAAkB,UAC5C,4CAAC,8BAAY,aAAZ,EACE,0BAAgB,OACnB;AAAA,IAED;AAAA,MAAC,gBAAgB;AAAA,MAAhB;AAAA,QACA,MAAO;AAAA,QACP,OAAQ;AAAA;AAAA,IACT;AAAA,KACD,GACD,IAEA;AAAA,IAAC,gBAAgB;AAAA,IAAhB;AAAA,MACA;AAAA,MACA,OAAQ;AAAA,MACR;AAAA,MACA,qBACC,kBAAkB,SAAS,OAAO;AAAA,MAEnC;AAAA;AAAA,EACD,GAEF;AAEF;",
4
+ "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useContext, useMemo } from '@wordpress/element';\nimport {\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\t__experimentalHeading as Heading,\n\t__experimentalSpacer as Spacer,\n\tBaseControl,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport type {\n\tFieldLayoutProps,\n\tNormalizedForm,\n\tNormalizedRegularLayout,\n} from '../../types';\nimport DataFormContext from '../../components/dataform-context';\nimport { DataFormLayout } from '../data-form-layout';\nimport { DEFAULT_LAYOUT } from '../normalize-form';\n\nfunction Header( { title }: { title: string } ) {\n\treturn (\n\t\t<VStack className=\"dataforms-layouts-regular__header\" spacing={ 4 }>\n\t\t\t<HStack alignment=\"center\">\n\t\t\t\t<Heading level={ 2 } size={ 13 }>\n\t\t\t\t\t{ title }\n\t\t\t\t</Heading>\n\t\t\t\t<Spacer />\n\t\t\t</HStack>\n\t\t</VStack>\n\t);\n}\n\nexport default function FormRegularField< Item >( {\n\tdata,\n\tfield,\n\tonChange,\n\thideLabelFromVision,\n\tvalidity,\n}: FieldLayoutProps< Item > ) {\n\tconst { fields } = useContext( DataFormContext );\n\tconst layout = field.layout as NormalizedRegularLayout;\n\n\tconst form: NormalizedForm = useMemo(\n\t\t() => ( {\n\t\t\tlayout: DEFAULT_LAYOUT,\n\t\t\tfields: !! field.children ? field.children : [],\n\t\t} ),\n\t\t[ field ]\n\t);\n\n\tif ( !! field.children ) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ ! hideLabelFromVision && field.label && (\n\t\t\t\t\t<Header title={ field.label } />\n\t\t\t\t) }\n\t\t\t\t<DataFormLayout\n\t\t\t\t\tdata={ data }\n\t\t\t\t\tform={ form }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\tvalidity={ validity?.children }\n\t\t\t\t/>\n\t\t\t</>\n\t\t);\n\t}\n\n\tconst labelPosition = layout.labelPosition;\n\tconst fieldDefinition = fields.find(\n\t\t( fieldDef ) => fieldDef.id === field.id\n\t);\n\n\tif ( ! fieldDefinition || ! fieldDefinition.Edit ) {\n\t\treturn null;\n\t}\n\n\tif ( labelPosition === 'side' ) {\n\t\treturn (\n\t\t\t<HStack className=\"dataforms-layouts-regular__field\">\n\t\t\t\t<div\n\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t'dataforms-layouts-regular__field-label',\n\t\t\t\t\t\t`dataforms-layouts-regular__field-label--label-position-${ labelPosition }`\n\t\t\t\t\t) }\n\t\t\t\t>\n\t\t\t\t\t{ fieldDefinition.label }\n\t\t\t\t</div>\n\t\t\t\t<div className=\"dataforms-layouts-regular__field-control\">\n\t\t\t\t\t{ fieldDefinition.readOnly === true ? (\n\t\t\t\t\t\t<fieldDefinition.render\n\t\t\t\t\t\t\titem={ data }\n\t\t\t\t\t\t\tfield={ fieldDefinition }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<fieldDefinition.Edit\n\t\t\t\t\t\t\tkey={ fieldDefinition.id }\n\t\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\t\tfield={ fieldDefinition }\n\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t\tvalidity={ validity }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t</HStack>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div className=\"dataforms-layouts-regular__field\">\n\t\t\t{ fieldDefinition.readOnly === true ? (\n\t\t\t\t<>\n\t\t\t\t\t<>\n\t\t\t\t\t\t{ ! hideLabelFromVision && labelPosition !== 'none' && (\n\t\t\t\t\t\t\t<BaseControl.VisualLabel>\n\t\t\t\t\t\t\t\t{ fieldDefinition.label }\n\t\t\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<fieldDefinition.render\n\t\t\t\t\t\t\titem={ data }\n\t\t\t\t\t\t\tfield={ fieldDefinition }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</>\n\t\t\t\t</>\n\t\t\t) : (\n\t\t\t\t<fieldDefinition.Edit\n\t\t\t\t\tdata={ data }\n\t\t\t\t\tfield={ fieldDefinition }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\thideLabelFromVision={\n\t\t\t\t\t\tlabelPosition === 'none' ? true : hideLabelFromVision\n\t\t\t\t\t}\n\t\t\t\t\tvalidity={ validity }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAAiB;AAKjB,qBAAoC;AACpC,wBAMO;AAUP,8BAA4B;AAC5B,8BAA+B;AAC/B,4BAA+B;AAK5B;AAHH,SAAS,OAAQ,EAAE,MAAM,GAAuB;AAC/C,SACC,4CAAC,kBAAAA,sBAAA,EAAO,WAAU,qCAAoC,SAAU,GAC/D,uDAAC,kBAAAC,sBAAA,EAAO,WAAU,UACjB;AAAA,gDAAC,kBAAAC,uBAAA,EAAQ,OAAQ,GAAI,MAAO,IACzB,iBACH;AAAA,IACA,4CAAC,kBAAAC,sBAAA,EAAO;AAAA,KACT,GACD;AAEF;AAEe,SAAR,iBAA2C;AAAA,EACjD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAA8B;AAC7B,QAAM,EAAE,OAAO,QAAI,2BAAY,wBAAAC,OAAgB;AAC/C,QAAM,SAAS,MAAM;AAErB,QAAM,WAAuB;AAAA,IAC5B,OAAQ;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ,CAAC,CAAE,MAAM,WAAW,MAAM,WAAW,CAAC;AAAA,IAC/C;AAAA,IACA,CAAE,KAAM;AAAA,EACT;AAEA,MAAK,CAAC,CAAE,MAAM,UAAW;AACxB,WACC,4EACG;AAAA,OAAE,uBAAuB,MAAM,SAChC,4CAAC,UAAO,OAAQ,MAAM,OAAQ;AAAA,MAE/B;AAAA,QAAC;AAAA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA,UAAW,UAAU;AAAA;AAAA,MACtB;AAAA,OACD;AAAA,EAEF;AAEA,QAAM,gBAAgB,OAAO;AAC7B,QAAM,kBAAkB,OAAO;AAAA,IAC9B,CAAE,aAAc,SAAS,OAAO,MAAM;AAAA,EACvC;AAEA,MAAK,CAAE,mBAAmB,CAAE,gBAAgB,MAAO;AAClD,WAAO;AAAA,EACR;AAEA,MAAK,kBAAkB,QAAS;AAC/B,WACC,6CAAC,kBAAAH,sBAAA,EAAO,WAAU,oCACjB;AAAA;AAAA,QAAC;AAAA;AAAA,UACA,eAAY,YAAAI;AAAA,YACX;AAAA,YACA,0DAA2D,aAAc;AAAA,UAC1E;AAAA,UAEE,0BAAgB;AAAA;AAAA,MACnB;AAAA,MACA,4CAAC,SAAI,WAAU,4CACZ,0BAAgB,aAAa,OAC9B;AAAA,QAAC,gBAAgB;AAAA,QAAhB;AAAA,UACA,MAAO;AAAA,UACP,OAAQ;AAAA;AAAA,MACT,IAEA;AAAA,QAAC,gBAAgB;AAAA,QAAhB;AAAA,UAEA;AAAA,UACA,OAAQ;AAAA,UACR;AAAA,UACA,qBAAmB;AAAA,UACnB;AAAA;AAAA,QALM,gBAAgB;AAAA,MAMvB,GAEF;AAAA,OACD;AAAA,EAEF;AAEA,SACC,4CAAC,SAAI,WAAU,oCACZ,0BAAgB,aAAa,OAC9B,2EACC,sFACG;AAAA,KAAE,uBAAuB,kBAAkB,UAC5C,4CAAC,8BAAY,aAAZ,EACE,0BAAgB,OACnB;AAAA,IAED;AAAA,MAAC,gBAAgB;AAAA,MAAhB;AAAA,QACA,MAAO;AAAA,QACP,OAAQ;AAAA;AAAA,IACT;AAAA,KACD,GACD,IAEA;AAAA,IAAC,gBAAgB;AAAA,IAAhB;AAAA,MACA;AAAA,MACA,OAAQ;AAAA,MACR;AAAA,MACA,qBACC,kBAAkB,SAAS,OAAO;AAAA,MAEnC;AAAA;AAAA,EACD,GAEF;AAEF;",
6
6
  "names": ["VStack", "HStack", "Heading", "Spacer", "DataFormContext", "clsx"]
7
7
  }
@@ -1,9 +1,7 @@
1
1
  "use strict";
2
- var __create = Object.create;
3
2
  var __defProp = Object.defineProperty;
4
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
8
6
  var __export = (target, all) => {
9
7
  for (var name in all)
@@ -17,35 +15,26 @@ var __copyProps = (to, from, except, desc) => {
17
15
  }
18
16
  return to;
19
17
  };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
- mod
27
- ));
28
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // packages/dataviews/src/dataform-layouts/row/index.tsx
29
21
  var row_exports = {};
30
22
  __export(row_exports, {
31
23
  default: () => FormRowField
32
24
  });
33
25
  module.exports = __toCommonJS(row_exports);
34
- var import_jsx_runtime = require("react/jsx-runtime");
35
26
  var import_components = require("@wordpress/components");
36
- var import_element = require("@wordpress/element");
37
- var import_dataform_context = __toESM(require("../../components/dataform-context"));
38
27
  var import_data_form_layout = require("../data-form-layout");
39
- var import_is_combined_field = require("../is-combined-field");
40
- var import_normalize_form_fields = require("../normalize-form-fields");
28
+ var import_normalize_form = require("../normalize-form");
41
29
  var import__ = require("..");
30
+ var import_jsx_runtime = require("react/jsx-runtime");
42
31
  function Header({ title }) {
43
32
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.__experimentalVStack, { className: "dataforms-layouts-row__header", spacing: 4, children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_components.__experimentalHStack, { alignment: "center", children: [
44
33
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.__experimentalHeading, { level: 2, size: 13, children: title }),
45
34
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.__experimentalSpacer, {})
46
35
  ] }) });
47
36
  }
48
- const EMPTY_WRAPPER = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children });
37
+ var EMPTY_WRAPPER = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children });
49
38
  function FormRowField({
50
39
  data,
51
40
  field,
@@ -53,19 +42,11 @@ function FormRowField({
53
42
  hideLabelFromVision,
54
43
  validity
55
44
  }) {
56
- const { fields } = (0, import_element.useContext)(import_dataform_context.default);
57
- const layout = (0, import_normalize_form_fields.normalizeLayout)({
58
- ...field.layout,
59
- type: "row"
60
- });
61
- if ((0, import_is_combined_field.isCombinedField)(field)) {
45
+ const layout = field.layout;
46
+ if (!!field.children) {
62
47
  const form = {
63
- fields: field.children.map((child) => {
64
- if (typeof child === "string") {
65
- return { id: child };
66
- }
67
- return child;
68
- })
48
+ layout: import_normalize_form.DEFAULT_LAYOUT,
49
+ fields: field.children
69
50
  };
70
51
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "dataforms-layouts-row__field", children: [
71
52
  !hideLabelFromVision && field.label && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Header, { title: field.label }),
@@ -99,10 +80,6 @@ function FormRowField({
99
80
  ) })
100
81
  ] });
101
82
  }
102
- const fieldDefinition = fields.find((f) => f.id === field.id);
103
- if (!fieldDefinition || !fieldDefinition.Edit) {
104
- return null;
105
- }
106
83
  const RegularLayout = (0, import__.getFormFieldLayout)("regular")?.component;
107
84
  if (!RegularLayout) {
108
85
  return null;
@@ -111,7 +88,7 @@ function FormRowField({
111
88
  RegularLayout,
112
89
  {
113
90
  data,
114
- field: fieldDefinition,
91
+ field,
115
92
  onChange,
116
93
  validity
117
94
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/dataform-layouts/row/index.tsx"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalHStack as HStack,\n\t__experimentalSpacer as Spacer,\n\t__experimentalVStack as VStack,\n\t__experimentalHeading as Heading,\n} from '@wordpress/components';\nimport { useContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport type { FieldLayoutProps, Form, NormalizedRowLayout } from '../../types';\nimport DataFormContext from '../../components/dataform-context';\nimport { DataFormLayout } from '../data-form-layout';\nimport { isCombinedField } from '../is-combined-field';\nimport { normalizeLayout } from '../normalize-form-fields';\nimport { getFormFieldLayout } from '..';\n\nfunction Header( { title }: { title: string } ) {\n\treturn (\n\t\t<VStack className=\"dataforms-layouts-row__header\" spacing={ 4 }>\n\t\t\t<HStack alignment=\"center\">\n\t\t\t\t<Heading level={ 2 } size={ 13 }>\n\t\t\t\t\t{ title }\n\t\t\t\t</Heading>\n\t\t\t\t<Spacer />\n\t\t\t</HStack>\n\t\t</VStack>\n\t);\n}\n\nconst EMPTY_WRAPPER = ( { children }: { children: React.ReactNode } ) => (\n\t<>{ children }</>\n);\n\nexport default function FormRowField< Item >( {\n\tdata,\n\tfield,\n\tonChange,\n\thideLabelFromVision,\n\tvalidity,\n}: FieldLayoutProps< Item > ) {\n\tconst { fields } = useContext( DataFormContext );\n\n\tconst layout = normalizeLayout( {\n\t\t...field.layout,\n\t\ttype: 'row',\n\t} ) as NormalizedRowLayout;\n\n\tif ( isCombinedField( field ) ) {\n\t\tconst form: Form = {\n\t\t\tfields: field.children.map( ( child ) => {\n\t\t\t\tif ( typeof child === 'string' ) {\n\t\t\t\t\treturn { id: child };\n\t\t\t\t}\n\t\t\t\treturn child;\n\t\t\t} ),\n\t\t};\n\n\t\treturn (\n\t\t\t<div className=\"dataforms-layouts-row__field\">\n\t\t\t\t{ ! hideLabelFromVision && field.label && (\n\t\t\t\t\t<Header title={ field.label } />\n\t\t\t\t) }\n\t\t\t\t<HStack alignment={ layout.alignment } spacing={ 4 }>\n\t\t\t\t\t<DataFormLayout\n\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\tform={ form }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\tvalidity={ validity?.children }\n\t\t\t\t\t\tas={ EMPTY_WRAPPER }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ( FieldLayout, childField, childFieldValidity ) => (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tkey={ childField.id }\n\t\t\t\t\t\t\t\tclassName=\"dataforms-layouts-row__field-control\"\n\t\t\t\t\t\t\t\tstyle={ layout.styles[ childField.id ] }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<FieldLayout\n\t\t\t\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\t\t\t\tfield={ childField }\n\t\t\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\t\t\thideLabelFromVision={ hideLabelFromVision }\n\t\t\t\t\t\t\t\t\tvalidity={ childFieldValidity }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</DataFormLayout>\n\t\t\t\t</HStack>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst fieldDefinition = fields.find( ( f ) => f.id === field.id );\n\n\tif ( ! fieldDefinition || ! fieldDefinition.Edit ) {\n\t\treturn null;\n\t}\n\n\tconst RegularLayout = getFormFieldLayout( 'regular' )?.component;\n\tif ( ! RegularLayout ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<div className=\"dataforms-layouts-row__field-control\">\n\t\t\t\t<RegularLayout\n\t\t\t\t\tdata={ data }\n\t\t\t\t\tfield={ fieldDefinition }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\tvalidity={ validity }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAwBG;AArBH,wBAKO;AACP,qBAA2B;AAM3B,8BAA4B;AAC5B,8BAA+B;AAC/B,+BAAgC;AAChC,mCAAgC;AAChC,eAAmC;AAEnC,SAAS,OAAQ,EAAE,MAAM,GAAuB;AAC/C,SACC,4CAAC,kBAAAA,sBAAA,EAAO,WAAU,iCAAgC,SAAU,GAC3D,uDAAC,kBAAAC,sBAAA,EAAO,WAAU,UACjB;AAAA,gDAAC,kBAAAC,uBAAA,EAAQ,OAAQ,GAAI,MAAO,IACzB,iBACH;AAAA,IACA,4CAAC,kBAAAC,sBAAA,EAAO;AAAA,KACT,GACD;AAEF;AAEA,MAAM,gBAAgB,CAAE,EAAE,SAAS,MAClC,2EAAI,UAAU;AAGA,SAAR,aAAuC;AAAA,EAC7C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAA8B;AAC7B,QAAM,EAAE,OAAO,QAAI,2BAAY,wBAAAC,OAAgB;AAE/C,QAAM,aAAS,8CAAiB;AAAA,IAC/B,GAAG,MAAM;AAAA,IACT,MAAM;AAAA,EACP,CAAE;AAEF,UAAK,0CAAiB,KAAM,GAAI;AAC/B,UAAM,OAAa;AAAA,MAClB,QAAQ,MAAM,SAAS,IAAK,CAAE,UAAW;AACxC,YAAK,OAAO,UAAU,UAAW;AAChC,iBAAO,EAAE,IAAI,MAAM;AAAA,QACpB;AACA,eAAO;AAAA,MACR,CAAE;AAAA,IACH;AAEA,WACC,6CAAC,SAAI,WAAU,gCACZ;AAAA,OAAE,uBAAuB,MAAM,SAChC,4CAAC,UAAO,OAAQ,MAAM,OAAQ;AAAA,MAE/B,4CAAC,kBAAAH,sBAAA,EAAO,WAAY,OAAO,WAAY,SAAU,GAChD;AAAA,QAAC;AAAA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA,UAAW,UAAU;AAAA,UACrB,IAAK;AAAA,UAEH,WAAE,aAAa,YAAY,uBAC5B;AAAA,YAAC;AAAA;AAAA,cAEA,WAAU;AAAA,cACV,OAAQ,OAAO,OAAQ,WAAW,EAAG;AAAA,cAErC;AAAA,gBAAC;AAAA;AAAA,kBACA;AAAA,kBACA,OAAQ;AAAA,kBACR;AAAA,kBACA;AAAA,kBACA,UAAW;AAAA;AAAA,cACZ;AAAA;AAAA,YAVM,WAAW;AAAA,UAWlB;AAAA;AAAA,MAEF,GACD;AAAA,OACD;AAAA,EAEF;AAEA,QAAM,kBAAkB,OAAO,KAAM,CAAE,MAAO,EAAE,OAAO,MAAM,EAAG;AAEhE,MAAK,CAAE,mBAAmB,CAAE,gBAAgB,MAAO;AAClD,WAAO;AAAA,EACR;AAEA,QAAM,oBAAgB,6BAAoB,SAAU,GAAG;AACvD,MAAK,CAAE,eAAgB;AACtB,WAAO;AAAA,EACR;AAEA,SACC,2EACC,sDAAC,SAAI,WAAU,wCACd;AAAA,IAAC;AAAA;AAAA,MACA;AAAA,MACA,OAAQ;AAAA,MACR;AAAA,MACA;AAAA;AAAA,EACD,GACD,GACD;AAEF;",
6
- "names": ["VStack", "HStack", "Heading", "Spacer", "DataFormContext"]
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalHStack as HStack,\n\t__experimentalSpacer as Spacer,\n\t__experimentalVStack as VStack,\n\t__experimentalHeading as Heading,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport type {\n\tFieldLayoutProps,\n\tNormalizedForm,\n\tNormalizedLayout,\n\tNormalizedRowLayout,\n} from '../../types';\nimport { DataFormLayout } from '../data-form-layout';\nimport { DEFAULT_LAYOUT } from '../normalize-form';\nimport { getFormFieldLayout } from '..';\n\nfunction Header( { title }: { title: string } ) {\n\treturn (\n\t\t<VStack className=\"dataforms-layouts-row__header\" spacing={ 4 }>\n\t\t\t<HStack alignment=\"center\">\n\t\t\t\t<Heading level={ 2 } size={ 13 }>\n\t\t\t\t\t{ title }\n\t\t\t\t</Heading>\n\t\t\t\t<Spacer />\n\t\t\t</HStack>\n\t\t</VStack>\n\t);\n}\n\nconst EMPTY_WRAPPER = ( { children }: { children: React.ReactNode } ) => (\n\t<>{ children }</>\n);\n\nexport default function FormRowField< Item >( {\n\tdata,\n\tfield,\n\tonChange,\n\thideLabelFromVision,\n\tvalidity,\n}: FieldLayoutProps< Item > ) {\n\tconst layout = field.layout as NormalizedRowLayout;\n\n\tif ( !! field.children ) {\n\t\tconst form: NormalizedForm = {\n\t\t\tlayout: DEFAULT_LAYOUT as NormalizedLayout,\n\t\t\tfields: field.children,\n\t\t};\n\n\t\treturn (\n\t\t\t<div className=\"dataforms-layouts-row__field\">\n\t\t\t\t{ ! hideLabelFromVision && field.label && (\n\t\t\t\t\t<Header title={ field.label } />\n\t\t\t\t) }\n\t\t\t\t<HStack alignment={ layout.alignment } spacing={ 4 }>\n\t\t\t\t\t<DataFormLayout\n\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\tform={ form }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\tvalidity={ validity?.children }\n\t\t\t\t\t\tas={ EMPTY_WRAPPER }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ( FieldLayout, childField, childFieldValidity ) => (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tkey={ childField.id }\n\t\t\t\t\t\t\t\tclassName=\"dataforms-layouts-row__field-control\"\n\t\t\t\t\t\t\t\tstyle={ layout.styles[ childField.id ] }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<FieldLayout\n\t\t\t\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\t\t\t\tfield={ childField }\n\t\t\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\t\t\thideLabelFromVision={ hideLabelFromVision }\n\t\t\t\t\t\t\t\t\tvalidity={ childFieldValidity }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</DataFormLayout>\n\t\t\t\t</HStack>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst RegularLayout = getFormFieldLayout( 'regular' )?.component;\n\tif ( ! RegularLayout ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<div className=\"dataforms-layouts-row__field-control\">\n\t\t\t\t<RegularLayout\n\t\t\t\t\tdata={ data }\n\t\t\t\t\tfield={ field }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\tvalidity={ validity }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,wBAKO;AAWP,8BAA+B;AAC/B,4BAA+B;AAC/B,eAAmC;AAKhC;AAHH,SAAS,OAAQ,EAAE,MAAM,GAAuB;AAC/C,SACC,4CAAC,kBAAAA,sBAAA,EAAO,WAAU,iCAAgC,SAAU,GAC3D,uDAAC,kBAAAC,sBAAA,EAAO,WAAU,UACjB;AAAA,gDAAC,kBAAAC,uBAAA,EAAQ,OAAQ,GAAI,MAAO,IACzB,iBACH;AAAA,IACA,4CAAC,kBAAAC,sBAAA,EAAO;AAAA,KACT,GACD;AAEF;AAEA,IAAM,gBAAgB,CAAE,EAAE,SAAS,MAClC,2EAAI,UAAU;AAGA,SAAR,aAAuC;AAAA,EAC7C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAA8B;AAC7B,QAAM,SAAS,MAAM;AAErB,MAAK,CAAC,CAAE,MAAM,UAAW;AACxB,UAAM,OAAuB;AAAA,MAC5B,QAAQ;AAAA,MACR,QAAQ,MAAM;AAAA,IACf;AAEA,WACC,6CAAC,SAAI,WAAU,gCACZ;AAAA,OAAE,uBAAuB,MAAM,SAChC,4CAAC,UAAO,OAAQ,MAAM,OAAQ;AAAA,MAE/B,4CAAC,kBAAAF,sBAAA,EAAO,WAAY,OAAO,WAAY,SAAU,GAChD;AAAA,QAAC;AAAA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA,UAAW,UAAU;AAAA,UACrB,IAAK;AAAA,UAEH,WAAE,aAAa,YAAY,uBAC5B;AAAA,YAAC;AAAA;AAAA,cAEA,WAAU;AAAA,cACV,OAAQ,OAAO,OAAQ,WAAW,EAAG;AAAA,cAErC;AAAA,gBAAC;AAAA;AAAA,kBACA;AAAA,kBACA,OAAQ;AAAA,kBACR;AAAA,kBACA;AAAA,kBACA,UAAW;AAAA;AAAA,cACZ;AAAA;AAAA,YAVM,WAAW;AAAA,UAWlB;AAAA;AAAA,MAEF,GACD;AAAA,OACD;AAAA,EAEF;AAEA,QAAM,oBAAgB,6BAAoB,SAAU,GAAG;AACvD,MAAK,CAAE,eAAgB;AACtB,WAAO;AAAA,EACR;AAEA,SACC,2EACC,sDAAC,SAAI,WAAU,wCACd;AAAA,IAAC;AAAA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,EACD,GACD,GACD;AAEF;",
6
+ "names": ["VStack", "HStack", "Heading", "Spacer"]
7
7
  }
@@ -26,12 +26,13 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
26
26
  mod
27
27
  ));
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+
30
+ // packages/dataviews/src/dataviews-layouts/grid/index.tsx
29
31
  var grid_exports = {};
30
32
  __export(grid_exports, {
31
33
  default: () => grid_default
32
34
  });
33
35
  module.exports = __toCommonJS(grid_exports);
34
- var import_jsx_runtime = require("react/jsx-runtime");
35
36
  var import_clsx = __toESM(require("clsx"));
36
37
  var import_components = require("@wordpress/components");
37
38
  var import_i18n = require("@wordpress/i18n");
@@ -46,7 +47,8 @@ var import_dataviews_bulk_actions = require("../../components/dataviews-bulk-act
46
47
  var import_item_click_wrapper = require("../utils/item-click-wrapper");
47
48
  var import_grid_items = require("../utils/grid-items");
48
49
  var import_get_data_by_group = __toESM(require("../utils/get-data-by-group"));
49
- const { Badge } = (0, import_lock_unlock.unlock)(import_components.privateApis);
50
+ var import_jsx_runtime = require("react/jsx-runtime");
51
+ var { Badge } = (0, import_lock_unlock.unlock)(import_components.privateApis);
50
52
  function GridItem({
51
53
  view,
52
54
  selection,