@wordpress/widget-dashboard 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (443) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/LICENSE.md +788 -0
  3. package/README.md +241 -0
  4. package/build/components/actions/actions.cjs +265 -0
  5. package/build/components/actions/actions.cjs.map +7 -0
  6. package/build/components/actions/index.cjs +31 -0
  7. package/build/components/actions/index.cjs.map +7 -0
  8. package/build/components/actions-menu/actions-menu.cjs +92 -0
  9. package/build/components/actions-menu/actions-menu.cjs.map +7 -0
  10. package/build/components/actions-menu/index.cjs +31 -0
  11. package/build/components/actions-menu/index.cjs.map +7 -0
  12. package/build/components/commands/commands.cjs +177 -0
  13. package/build/components/commands/commands.cjs.map +7 -0
  14. package/build/components/commands/index.cjs +33 -0
  15. package/build/components/commands/index.cjs.map +7 -0
  16. package/build/components/commands/use-pending-when-edit-mode.cjs +57 -0
  17. package/build/components/commands/use-pending-when-edit-mode.cjs.map +7 -0
  18. package/build/components/layout-settings/index.cjs +31 -0
  19. package/build/components/layout-settings/index.cjs.map +7 -0
  20. package/build/components/layout-settings/layout-model-edit-field/index.cjs +186 -0
  21. package/build/components/layout-settings/layout-model-edit-field/index.cjs.map +7 -0
  22. package/build/components/layout-settings/layout-model-edit-field/thumbnail-grid.cjs +53 -0
  23. package/build/components/layout-settings/layout-model-edit-field/thumbnail-grid.cjs.map +7 -0
  24. package/build/components/layout-settings/layout-model-edit-field/thumbnail-masonry.cjs +53 -0
  25. package/build/components/layout-settings/layout-model-edit-field/thumbnail-masonry.cjs.map +7 -0
  26. package/build/components/layout-settings/layout-settings.cjs +207 -0
  27. package/build/components/layout-settings/layout-settings.cjs.map +7 -0
  28. package/build/components/no-widgets-state/index.cjs +31 -0
  29. package/build/components/no-widgets-state/index.cjs.map +7 -0
  30. package/build/components/no-widgets-state/no-widgets-state.cjs +140 -0
  31. package/build/components/no-widgets-state/no-widgets-state.cjs.map +7 -0
  32. package/build/components/reset-confirmation/index.cjs +31 -0
  33. package/build/components/reset-confirmation/index.cjs.map +7 -0
  34. package/build/components/reset-confirmation/reset-confirmation.cjs +62 -0
  35. package/build/components/reset-confirmation/reset-confirmation.cjs.map +7 -0
  36. package/build/components/widget-chrome/index.cjs +31 -0
  37. package/build/components/widget-chrome/index.cjs.map +7 -0
  38. package/build/components/widget-chrome/widget-chrome.cjs +277 -0
  39. package/build/components/widget-chrome/widget-chrome.cjs.map +7 -0
  40. package/build/components/widget-inserter/index.cjs +31 -0
  41. package/build/components/widget-inserter/index.cjs.map +7 -0
  42. package/build/components/widget-inserter/widget-inserter.cjs +78 -0
  43. package/build/components/widget-inserter/widget-inserter.cjs.map +7 -0
  44. package/build/components/widget-picker/index.cjs +31 -0
  45. package/build/components/widget-picker/index.cjs.map +7 -0
  46. package/build/components/widget-picker/widget-picker.cjs +209 -0
  47. package/build/components/widget-picker/widget-picker.cjs.map +7 -0
  48. package/build/components/widget-render/index.cjs +31 -0
  49. package/build/components/widget-render/index.cjs.map +7 -0
  50. package/build/components/widget-render/widget-render.cjs +62 -0
  51. package/build/components/widget-render/widget-render.cjs.map +7 -0
  52. package/build/components/widget-settings/index.cjs +37 -0
  53. package/build/components/widget-settings/index.cjs.map +7 -0
  54. package/build/components/widget-settings/utils/get-admin-menu-inset.cjs +41 -0
  55. package/build/components/widget-settings/utils/get-admin-menu-inset.cjs.map +7 -0
  56. package/build/components/widget-settings/utils/get-widget-settings.cjs +38 -0
  57. package/build/components/widget-settings/utils/get-widget-settings.cjs.map +7 -0
  58. package/build/components/widget-settings/utils/index.cjs +34 -0
  59. package/build/components/widget-settings/utils/index.cjs.map +7 -0
  60. package/build/components/widget-settings/widget-settings-toolbar.cjs +138 -0
  61. package/build/components/widget-settings/widget-settings-toolbar.cjs.map +7 -0
  62. package/build/components/widget-settings/widget-settings-trigger.cjs +82 -0
  63. package/build/components/widget-settings/widget-settings-trigger.cjs.map +7 -0
  64. package/build/components/widget-settings/widget-settings.cjs +269 -0
  65. package/build/components/widget-settings/widget-settings.cjs.map +7 -0
  66. package/build/components/widget-toolbar/index.cjs +31 -0
  67. package/build/components/widget-toolbar/index.cjs.map +7 -0
  68. package/build/components/widget-toolbar/widget-toolbar.cjs +148 -0
  69. package/build/components/widget-toolbar/widget-toolbar.cjs.map +7 -0
  70. package/build/components/widgets/index.cjs +31 -0
  71. package/build/components/widgets/index.cjs.map +7 -0
  72. package/build/components/widgets/widget-layout-toolbar.cjs +206 -0
  73. package/build/components/widgets/widget-layout-toolbar.cjs.map +7 -0
  74. package/build/components/widgets/widget-resize-handle.cjs +163 -0
  75. package/build/components/widgets/widget-resize-handle.cjs.map +7 -0
  76. package/build/components/widgets/widgets.cjs +277 -0
  77. package/build/components/widgets/widgets.cjs.map +7 -0
  78. package/build/context/dashboard-context.cjs +234 -0
  79. package/build/context/dashboard-context.cjs.map +7 -0
  80. package/build/context/ui-context.cjs +77 -0
  81. package/build/context/ui-context.cjs.map +7 -0
  82. package/build/context/widget-context.cjs +44 -0
  83. package/build/context/widget-context.cjs.map +7 -0
  84. package/build/hooks/use-dashboard-container-column-count.cjs +61 -0
  85. package/build/hooks/use-dashboard-container-column-count.cjs.map +7 -0
  86. package/build/index.cjs +45 -0
  87. package/build/index.cjs.map +7 -0
  88. package/build/lock-unlock.cjs +37 -0
  89. package/build/lock-unlock.cjs.map +7 -0
  90. package/build/types.cjs +31 -0
  91. package/build/types.cjs.map +7 -0
  92. package/build/utils/create-dashboard-widget/create-dashboard-widget.cjs +44 -0
  93. package/build/utils/create-dashboard-widget/create-dashboard-widget.cjs.map +7 -0
  94. package/build/utils/create-dashboard-widget/index.cjs +31 -0
  95. package/build/utils/create-dashboard-widget/index.cjs.map +7 -0
  96. package/build/utils/default-grid/default-grid.cjs +37 -0
  97. package/build/utils/default-grid/default-grid.cjs.map +7 -0
  98. package/build/utils/default-grid/index.cjs +31 -0
  99. package/build/utils/default-grid/index.cjs.map +7 -0
  100. package/build/utils/grid-model-change/grid-model-change.cjs +56 -0
  101. package/build/utils/grid-model-change/grid-model-change.cjs.map +7 -0
  102. package/build/utils/grid-model-change/index.cjs +33 -0
  103. package/build/utils/grid-model-change/index.cjs.map +7 -0
  104. package/build/utils/index.cjs +34 -0
  105. package/build/utils/index.cjs.map +7 -0
  106. package/build/utils/migrate-layout/index.cjs +31 -0
  107. package/build/utils/migrate-layout/index.cjs.map +7 -0
  108. package/build/utils/migrate-layout/migrate-layout.cjs +94 -0
  109. package/build/utils/migrate-layout/migrate-layout.cjs.map +7 -0
  110. package/build/utils/normalize-grid-settings/index.cjs +31 -0
  111. package/build/utils/normalize-grid-settings/index.cjs.map +7 -0
  112. package/build/utils/normalize-grid-settings/normalize-grid-settings.cjs +46 -0
  113. package/build/utils/normalize-grid-settings/normalize-grid-settings.cjs.map +7 -0
  114. package/build/utils/resolve-dashboard-column-count/resolve-dashboard-column-count.cjs +49 -0
  115. package/build/utils/resolve-dashboard-column-count/resolve-dashboard-column-count.cjs.map +7 -0
  116. package/build/utils/row-height-presets/index.cjs +39 -0
  117. package/build/utils/row-height-presets/index.cjs.map +7 -0
  118. package/build/utils/row-height-presets/row-height-presets.cjs +63 -0
  119. package/build/utils/row-height-presets/row-height-presets.cjs.map +7 -0
  120. package/build/widget-dashboard.cjs +86 -0
  121. package/build/widget-dashboard.cjs.map +7 -0
  122. package/build/wordpress-commands.d.cjs +2 -0
  123. package/build/wordpress-commands.d.cjs.map +7 -0
  124. package/build-module/components/actions/actions.mjs +240 -0
  125. package/build-module/components/actions/actions.mjs.map +7 -0
  126. package/build-module/components/actions/index.mjs +6 -0
  127. package/build-module/components/actions/index.mjs.map +7 -0
  128. package/build-module/components/actions-menu/actions-menu.mjs +67 -0
  129. package/build-module/components/actions-menu/actions-menu.mjs.map +7 -0
  130. package/build-module/components/actions-menu/index.mjs +6 -0
  131. package/build-module/components/actions-menu/index.mjs.map +7 -0
  132. package/build-module/components/commands/commands.mjs +160 -0
  133. package/build-module/components/commands/commands.mjs.map +7 -0
  134. package/build-module/components/commands/index.mjs +7 -0
  135. package/build-module/components/commands/index.mjs.map +7 -0
  136. package/build-module/components/commands/use-pending-when-edit-mode.mjs +32 -0
  137. package/build-module/components/commands/use-pending-when-edit-mode.mjs.map +7 -0
  138. package/build-module/components/layout-settings/index.mjs +6 -0
  139. package/build-module/components/layout-settings/index.mjs.map +7 -0
  140. package/build-module/components/layout-settings/layout-model-edit-field/index.mjs +151 -0
  141. package/build-module/components/layout-settings/layout-model-edit-field/index.mjs.map +7 -0
  142. package/build-module/components/layout-settings/layout-model-edit-field/thumbnail-grid.mjs +28 -0
  143. package/build-module/components/layout-settings/layout-model-edit-field/thumbnail-grid.mjs.map +7 -0
  144. package/build-module/components/layout-settings/layout-model-edit-field/thumbnail-masonry.mjs +28 -0
  145. package/build-module/components/layout-settings/layout-model-edit-field/thumbnail-masonry.mjs.map +7 -0
  146. package/build-module/components/layout-settings/layout-settings.mjs +187 -0
  147. package/build-module/components/layout-settings/layout-settings.mjs.map +7 -0
  148. package/build-module/components/no-widgets-state/index.mjs +6 -0
  149. package/build-module/components/no-widgets-state/index.mjs.map +7 -0
  150. package/build-module/components/no-widgets-state/no-widgets-state.mjs +115 -0
  151. package/build-module/components/no-widgets-state/no-widgets-state.mjs.map +7 -0
  152. package/build-module/components/reset-confirmation/index.mjs +6 -0
  153. package/build-module/components/reset-confirmation/index.mjs.map +7 -0
  154. package/build-module/components/reset-confirmation/reset-confirmation.mjs +37 -0
  155. package/build-module/components/reset-confirmation/reset-confirmation.mjs.map +7 -0
  156. package/build-module/components/widget-chrome/index.mjs +6 -0
  157. package/build-module/components/widget-chrome/index.mjs.map +7 -0
  158. package/build-module/components/widget-chrome/widget-chrome.mjs +248 -0
  159. package/build-module/components/widget-chrome/widget-chrome.mjs.map +7 -0
  160. package/build-module/components/widget-inserter/index.mjs +6 -0
  161. package/build-module/components/widget-inserter/index.mjs.map +7 -0
  162. package/build-module/components/widget-inserter/widget-inserter.mjs +53 -0
  163. package/build-module/components/widget-inserter/widget-inserter.mjs.map +7 -0
  164. package/build-module/components/widget-picker/index.mjs +6 -0
  165. package/build-module/components/widget-picker/index.mjs.map +7 -0
  166. package/build-module/components/widget-picker/widget-picker.mjs +184 -0
  167. package/build-module/components/widget-picker/widget-picker.mjs.map +7 -0
  168. package/build-module/components/widget-render/index.mjs +6 -0
  169. package/build-module/components/widget-render/index.mjs.map +7 -0
  170. package/build-module/components/widget-render/widget-render.mjs +37 -0
  171. package/build-module/components/widget-render/widget-render.mjs.map +7 -0
  172. package/build-module/components/widget-settings/index.mjs +10 -0
  173. package/build-module/components/widget-settings/index.mjs.map +7 -0
  174. package/build-module/components/widget-settings/utils/get-admin-menu-inset.mjs +16 -0
  175. package/build-module/components/widget-settings/utils/get-admin-menu-inset.mjs.map +7 -0
  176. package/build-module/components/widget-settings/utils/get-widget-settings.mjs +13 -0
  177. package/build-module/components/widget-settings/utils/get-widget-settings.mjs.map +7 -0
  178. package/build-module/components/widget-settings/utils/index.mjs +8 -0
  179. package/build-module/components/widget-settings/utils/index.mjs.map +7 -0
  180. package/build-module/components/widget-settings/widget-settings-toolbar.mjs +113 -0
  181. package/build-module/components/widget-settings/widget-settings-toolbar.mjs.map +7 -0
  182. package/build-module/components/widget-settings/widget-settings-trigger.mjs +57 -0
  183. package/build-module/components/widget-settings/widget-settings-trigger.mjs.map +7 -0
  184. package/build-module/components/widget-settings/widget-settings.mjs +244 -0
  185. package/build-module/components/widget-settings/widget-settings.mjs.map +7 -0
  186. package/build-module/components/widget-toolbar/index.mjs +6 -0
  187. package/build-module/components/widget-toolbar/index.mjs.map +7 -0
  188. package/build-module/components/widget-toolbar/widget-toolbar.mjs +113 -0
  189. package/build-module/components/widget-toolbar/widget-toolbar.mjs.map +7 -0
  190. package/build-module/components/widgets/index.mjs +6 -0
  191. package/build-module/components/widgets/index.mjs.map +7 -0
  192. package/build-module/components/widgets/widget-layout-toolbar.mjs +181 -0
  193. package/build-module/components/widgets/widget-layout-toolbar.mjs.map +7 -0
  194. package/build-module/components/widgets/widget-resize-handle.mjs +128 -0
  195. package/build-module/components/widgets/widget-resize-handle.mjs.map +7 -0
  196. package/build-module/components/widgets/widgets.mjs +242 -0
  197. package/build-module/components/widgets/widgets.mjs.map +7 -0
  198. package/build-module/context/dashboard-context.mjs +205 -0
  199. package/build-module/context/dashboard-context.mjs.map +7 -0
  200. package/build-module/context/ui-context.mjs +56 -0
  201. package/build-module/context/ui-context.mjs.map +7 -0
  202. package/build-module/context/widget-context.mjs +18 -0
  203. package/build-module/context/widget-context.mjs.map +7 -0
  204. package/build-module/hooks/use-dashboard-container-column-count.mjs +40 -0
  205. package/build-module/hooks/use-dashboard-container-column-count.mjs.map +7 -0
  206. package/build-module/index.mjs +18 -0
  207. package/build-module/index.mjs.map +7 -0
  208. package/build-module/lock-unlock.mjs +11 -0
  209. package/build-module/lock-unlock.mjs.map +7 -0
  210. package/build-module/types.mjs +6 -0
  211. package/build-module/types.mjs.map +7 -0
  212. package/build-module/utils/create-dashboard-widget/create-dashboard-widget.mjs +19 -0
  213. package/build-module/utils/create-dashboard-widget/create-dashboard-widget.mjs.map +7 -0
  214. package/build-module/utils/create-dashboard-widget/index.mjs +6 -0
  215. package/build-module/utils/create-dashboard-widget/index.mjs.map +7 -0
  216. package/build-module/utils/default-grid/default-grid.mjs +12 -0
  217. package/build-module/utils/default-grid/default-grid.mjs.map +7 -0
  218. package/build-module/utils/default-grid/index.mjs +6 -0
  219. package/build-module/utils/default-grid/index.mjs.map +7 -0
  220. package/build-module/utils/grid-model-change/grid-model-change.mjs +30 -0
  221. package/build-module/utils/grid-model-change/grid-model-change.mjs.map +7 -0
  222. package/build-module/utils/grid-model-change/index.mjs +7 -0
  223. package/build-module/utils/grid-model-change/index.mjs.map +7 -0
  224. package/build-module/utils/index.mjs +8 -0
  225. package/build-module/utils/index.mjs.map +7 -0
  226. package/build-module/utils/migrate-layout/index.mjs +6 -0
  227. package/build-module/utils/migrate-layout/index.mjs.map +7 -0
  228. package/build-module/utils/migrate-layout/migrate-layout.mjs +69 -0
  229. package/build-module/utils/migrate-layout/migrate-layout.mjs.map +7 -0
  230. package/build-module/utils/normalize-grid-settings/index.mjs +6 -0
  231. package/build-module/utils/normalize-grid-settings/index.mjs.map +7 -0
  232. package/build-module/utils/normalize-grid-settings/normalize-grid-settings.mjs +21 -0
  233. package/build-module/utils/normalize-grid-settings/normalize-grid-settings.mjs.map +7 -0
  234. package/build-module/utils/resolve-dashboard-column-count/resolve-dashboard-column-count.mjs +22 -0
  235. package/build-module/utils/resolve-dashboard-column-count/resolve-dashboard-column-count.mjs.map +7 -0
  236. package/build-module/utils/row-height-presets/index.mjs +16 -0
  237. package/build-module/utils/row-height-presets/index.mjs.map +7 -0
  238. package/build-module/utils/row-height-presets/row-height-presets.mjs +34 -0
  239. package/build-module/utils/row-height-presets/row-height-presets.mjs.map +7 -0
  240. package/build-module/widget-dashboard.mjs +61 -0
  241. package/build-module/widget-dashboard.mjs.map +7 -0
  242. package/build-module/wordpress-commands.d.mjs +1 -0
  243. package/build-module/wordpress-commands.d.mjs.map +7 -0
  244. package/build-types/components/actions/actions.d.ts +11 -0
  245. package/build-types/components/actions/actions.d.ts.map +1 -0
  246. package/build-types/components/actions/index.d.ts +2 -0
  247. package/build-types/components/actions/index.d.ts.map +1 -0
  248. package/build-types/components/actions-menu/actions-menu.d.ts +22 -0
  249. package/build-types/components/actions-menu/actions-menu.d.ts.map +1 -0
  250. package/build-types/components/actions-menu/index.d.ts +3 -0
  251. package/build-types/components/actions-menu/index.d.ts.map +1 -0
  252. package/build-types/components/commands/commands.d.ts +7 -0
  253. package/build-types/components/commands/commands.d.ts.map +1 -0
  254. package/build-types/components/commands/index.d.ts +2 -0
  255. package/build-types/components/commands/index.d.ts.map +1 -0
  256. package/build-types/components/commands/use-pending-when-edit-mode.d.ts +15 -0
  257. package/build-types/components/commands/use-pending-when-edit-mode.d.ts.map +1 -0
  258. package/build-types/components/layout-settings/index.d.ts +2 -0
  259. package/build-types/components/layout-settings/index.d.ts.map +1 -0
  260. package/build-types/components/layout-settings/layout-model-edit-field/index.d.ts +17 -0
  261. package/build-types/components/layout-settings/layout-model-edit-field/index.d.ts.map +1 -0
  262. package/build-types/components/layout-settings/layout-model-edit-field/thumbnail-grid.d.ts +6 -0
  263. package/build-types/components/layout-settings/layout-model-edit-field/thumbnail-grid.d.ts.map +1 -0
  264. package/build-types/components/layout-settings/layout-model-edit-field/thumbnail-masonry.d.ts +6 -0
  265. package/build-types/components/layout-settings/layout-model-edit-field/thumbnail-masonry.d.ts.map +1 -0
  266. package/build-types/components/layout-settings/layout-settings.d.ts +14 -0
  267. package/build-types/components/layout-settings/layout-settings.d.ts.map +1 -0
  268. package/build-types/components/no-widgets-state/index.d.ts +2 -0
  269. package/build-types/components/no-widgets-state/index.d.ts.map +1 -0
  270. package/build-types/components/no-widgets-state/no-widgets-state.d.ts +17 -0
  271. package/build-types/components/no-widgets-state/no-widgets-state.d.ts.map +1 -0
  272. package/build-types/components/reset-confirmation/index.d.ts +2 -0
  273. package/build-types/components/reset-confirmation/index.d.ts.map +1 -0
  274. package/build-types/components/reset-confirmation/reset-confirmation.d.ts +8 -0
  275. package/build-types/components/reset-confirmation/reset-confirmation.d.ts.map +1 -0
  276. package/build-types/components/widget-chrome/index.d.ts +2 -0
  277. package/build-types/components/widget-chrome/index.d.ts.map +1 -0
  278. package/build-types/components/widget-chrome/widget-chrome.d.ts +22 -0
  279. package/build-types/components/widget-chrome/widget-chrome.d.ts.map +1 -0
  280. package/build-types/components/widget-inserter/index.d.ts +2 -0
  281. package/build-types/components/widget-inserter/index.d.ts.map +1 -0
  282. package/build-types/components/widget-inserter/widget-inserter.d.ts +7 -0
  283. package/build-types/components/widget-inserter/widget-inserter.d.ts.map +1 -0
  284. package/build-types/components/widget-picker/index.d.ts +2 -0
  285. package/build-types/components/widget-picker/index.d.ts.map +1 -0
  286. package/build-types/components/widget-picker/widget-picker.d.ts +26 -0
  287. package/build-types/components/widget-picker/widget-picker.d.ts.map +1 -0
  288. package/build-types/components/widget-render/index.d.ts +2 -0
  289. package/build-types/components/widget-render/index.d.ts.map +1 -0
  290. package/build-types/components/widget-render/widget-render.d.ts +17 -0
  291. package/build-types/components/widget-render/widget-render.d.ts.map +1 -0
  292. package/build-types/components/widget-settings/index.d.ts +5 -0
  293. package/build-types/components/widget-settings/index.d.ts.map +1 -0
  294. package/build-types/components/widget-settings/utils/get-admin-menu-inset.d.ts +17 -0
  295. package/build-types/components/widget-settings/utils/get-admin-menu-inset.d.ts.map +1 -0
  296. package/build-types/components/widget-settings/utils/get-widget-settings.d.ts +10 -0
  297. package/build-types/components/widget-settings/utils/get-widget-settings.d.ts.map +1 -0
  298. package/build-types/components/widget-settings/utils/index.d.ts +3 -0
  299. package/build-types/components/widget-settings/utils/index.d.ts.map +1 -0
  300. package/build-types/components/widget-settings/widget-settings-toolbar.d.ts +20 -0
  301. package/build-types/components/widget-settings/widget-settings-toolbar.d.ts.map +1 -0
  302. package/build-types/components/widget-settings/widget-settings-trigger.d.ts +23 -0
  303. package/build-types/components/widget-settings/widget-settings-trigger.d.ts.map +1 -0
  304. package/build-types/components/widget-settings/widget-settings.d.ts +13 -0
  305. package/build-types/components/widget-settings/widget-settings.d.ts.map +1 -0
  306. package/build-types/components/widget-toolbar/index.d.ts +3 -0
  307. package/build-types/components/widget-toolbar/index.d.ts.map +1 -0
  308. package/build-types/components/widget-toolbar/widget-toolbar.d.ts +16 -0
  309. package/build-types/components/widget-toolbar/widget-toolbar.d.ts.map +1 -0
  310. package/build-types/components/widgets/index.d.ts +2 -0
  311. package/build-types/components/widgets/index.d.ts.map +1 -0
  312. package/build-types/components/widgets/widget-layout-toolbar.d.ts +14 -0
  313. package/build-types/components/widgets/widget-layout-toolbar.d.ts.map +1 -0
  314. package/build-types/components/widgets/widget-resize-handle.d.ts +12 -0
  315. package/build-types/components/widgets/widget-resize-handle.d.ts.map +1 -0
  316. package/build-types/components/widgets/widgets.d.ts +10 -0
  317. package/build-types/components/widgets/widgets.d.ts.map +1 -0
  318. package/build-types/context/dashboard-context.d.ts +111 -0
  319. package/build-types/context/dashboard-context.d.ts.map +1 -0
  320. package/build-types/context/ui-context.d.ts +54 -0
  321. package/build-types/context/ui-context.d.ts.map +1 -0
  322. package/build-types/context/widget-context.d.ts +25 -0
  323. package/build-types/context/widget-context.d.ts.map +1 -0
  324. package/build-types/hooks/use-dashboard-container-column-count.d.ts +15 -0
  325. package/build-types/hooks/use-dashboard-container-column-count.d.ts.map +1 -0
  326. package/build-types/index.d.ts +7 -0
  327. package/build-types/index.d.ts.map +1 -0
  328. package/build-types/lock-unlock.d.ts +2 -0
  329. package/build-types/lock-unlock.d.ts.map +1 -0
  330. package/build-types/types.d.ts +222 -0
  331. package/build-types/types.d.ts.map +1 -0
  332. package/build-types/utils/create-dashboard-widget/create-dashboard-widget.d.ts +20 -0
  333. package/build-types/utils/create-dashboard-widget/create-dashboard-widget.d.ts.map +1 -0
  334. package/build-types/utils/create-dashboard-widget/index.d.ts +2 -0
  335. package/build-types/utils/create-dashboard-widget/index.d.ts.map +1 -0
  336. package/build-types/utils/default-grid/default-grid.d.ts +11 -0
  337. package/build-types/utils/default-grid/default-grid.d.ts.map +1 -0
  338. package/build-types/utils/default-grid/index.d.ts +2 -0
  339. package/build-types/utils/default-grid/index.d.ts.map +1 -0
  340. package/build-types/utils/grid-model-change/grid-model-change.d.ts +20 -0
  341. package/build-types/utils/grid-model-change/grid-model-change.d.ts.map +1 -0
  342. package/build-types/utils/grid-model-change/index.d.ts +2 -0
  343. package/build-types/utils/grid-model-change/index.d.ts.map +1 -0
  344. package/build-types/utils/index.d.ts +3 -0
  345. package/build-types/utils/index.d.ts.map +1 -0
  346. package/build-types/utils/migrate-layout/index.d.ts +2 -0
  347. package/build-types/utils/migrate-layout/index.d.ts.map +1 -0
  348. package/build-types/utils/migrate-layout/migrate-layout.d.ts +36 -0
  349. package/build-types/utils/migrate-layout/migrate-layout.d.ts.map +1 -0
  350. package/build-types/utils/normalize-grid-settings/index.d.ts +2 -0
  351. package/build-types/utils/normalize-grid-settings/index.d.ts.map +1 -0
  352. package/build-types/utils/normalize-grid-settings/normalize-grid-settings.d.ts +11 -0
  353. package/build-types/utils/normalize-grid-settings/normalize-grid-settings.d.ts.map +1 -0
  354. package/build-types/utils/resolve-dashboard-column-count/resolve-dashboard-column-count.d.ts +21 -0
  355. package/build-types/utils/resolve-dashboard-column-count/resolve-dashboard-column-count.d.ts.map +1 -0
  356. package/build-types/utils/row-height-presets/index.d.ts +3 -0
  357. package/build-types/utils/row-height-presets/index.d.ts.map +1 -0
  358. package/build-types/utils/row-height-presets/row-height-presets.d.ts +17 -0
  359. package/build-types/utils/row-height-presets/row-height-presets.d.ts.map +1 -0
  360. package/build-types/widget-dashboard.d.ts +51 -0
  361. package/build-types/widget-dashboard.d.ts.map +1 -0
  362. package/package.json +90 -0
  363. package/src/components/actions/actions.module.css +54 -0
  364. package/src/components/actions/actions.tsx +180 -0
  365. package/src/components/actions/index.ts +1 -0
  366. package/src/components/actions-menu/actions-menu.tsx +104 -0
  367. package/src/components/actions-menu/index.ts +2 -0
  368. package/src/components/commands/commands.tsx +182 -0
  369. package/src/components/commands/index.ts +1 -0
  370. package/src/components/commands/use-pending-when-edit-mode.ts +48 -0
  371. package/src/components/layout-settings/index.ts +1 -0
  372. package/src/components/layout-settings/layout-model-edit-field/index.tsx +98 -0
  373. package/src/components/layout-settings/layout-model-edit-field/style.module.css +34 -0
  374. package/src/components/layout-settings/layout-model-edit-field/thumbnail-grid.tsx +28 -0
  375. package/src/components/layout-settings/layout-model-edit-field/thumbnail-masonry.tsx +28 -0
  376. package/src/components/layout-settings/layout-settings.tsx +217 -0
  377. package/src/components/no-widgets-state/index.ts +1 -0
  378. package/src/components/no-widgets-state/no-widgets-state.module.css +3 -0
  379. package/src/components/no-widgets-state/no-widgets-state.tsx +56 -0
  380. package/src/components/reset-confirmation/index.ts +1 -0
  381. package/src/components/reset-confirmation/reset-confirmation.tsx +44 -0
  382. package/src/components/widget-chrome/index.ts +1 -0
  383. package/src/components/widget-chrome/widget-chrome.module.css +87 -0
  384. package/src/components/widget-chrome/widget-chrome.tsx +255 -0
  385. package/src/components/widget-inserter/index.ts +1 -0
  386. package/src/components/widget-inserter/widget-inserter.tsx +70 -0
  387. package/src/components/widget-picker/index.ts +1 -0
  388. package/src/components/widget-picker/widget-picker.module.css +11 -0
  389. package/src/components/widget-picker/widget-picker.tsx +137 -0
  390. package/src/components/widget-render/index.ts +1 -0
  391. package/src/components/widget-render/widget-render.tsx +58 -0
  392. package/src/components/widget-settings/index.ts +4 -0
  393. package/src/components/widget-settings/utils/get-admin-menu-inset.ts +30 -0
  394. package/src/components/widget-settings/utils/get-widget-settings.ts +22 -0
  395. package/src/components/widget-settings/utils/index.ts +2 -0
  396. package/src/components/widget-settings/widget-settings-toolbar.module.css +25 -0
  397. package/src/components/widget-settings/widget-settings-toolbar.tsx +45 -0
  398. package/src/components/widget-settings/widget-settings-trigger.tsx +96 -0
  399. package/src/components/widget-settings/widget-settings.module.css +8 -0
  400. package/src/components/widget-settings/widget-settings.tsx +200 -0
  401. package/src/components/widget-toolbar/index.ts +2 -0
  402. package/src/components/widget-toolbar/widget-toolbar.module.css +12 -0
  403. package/src/components/widget-toolbar/widget-toolbar.tsx +46 -0
  404. package/src/components/widgets/index.ts +1 -0
  405. package/src/components/widgets/widget-layout-toolbar.module.css +6 -0
  406. package/src/components/widgets/widget-layout-toolbar.tsx +118 -0
  407. package/src/components/widgets/widget-resize-handle.module.css +135 -0
  408. package/src/components/widgets/widget-resize-handle.tsx +60 -0
  409. package/src/components/widgets/widgets.module.css +43 -0
  410. package/src/components/widgets/widgets.tsx +208 -0
  411. package/src/context/dashboard-context.tsx +386 -0
  412. package/src/context/ui-context.tsx +118 -0
  413. package/src/context/widget-context.tsx +45 -0
  414. package/src/hooks/use-dashboard-container-column-count.ts +63 -0
  415. package/src/index.ts +9 -0
  416. package/src/lock-unlock.ts +10 -0
  417. package/src/test/actions.test.tsx +228 -0
  418. package/src/test/commands.test.tsx +176 -0
  419. package/src/test/create-dashboard-widget.test.ts +59 -0
  420. package/src/test/dashboard-context.test.tsx +26 -0
  421. package/src/test/staging.test.tsx +476 -0
  422. package/src/test/widget-dashboard.test.tsx +204 -0
  423. package/src/test/widget-inserter.test.tsx +210 -0
  424. package/src/test/widget-settings.test.tsx +199 -0
  425. package/src/types.ts +260 -0
  426. package/src/utils/create-dashboard-widget/create-dashboard-widget.ts +43 -0
  427. package/src/utils/create-dashboard-widget/index.ts +1 -0
  428. package/src/utils/default-grid/default-grid.ts +17 -0
  429. package/src/utils/default-grid/index.ts +1 -0
  430. package/src/utils/grid-model-change/grid-model-change.ts +53 -0
  431. package/src/utils/grid-model-change/index.ts +1 -0
  432. package/src/utils/index.ts +2 -0
  433. package/src/utils/migrate-layout/index.ts +1 -0
  434. package/src/utils/migrate-layout/migrate-layout.ts +156 -0
  435. package/src/utils/migrate-layout/test/migrate-layout.test.ts +114 -0
  436. package/src/utils/normalize-grid-settings/index.ts +1 -0
  437. package/src/utils/normalize-grid-settings/normalize-grid-settings.ts +38 -0
  438. package/src/utils/resolve-dashboard-column-count/resolve-dashboard-column-count.ts +41 -0
  439. package/src/utils/resolve-dashboard-column-count/test/resolve-dashboard-column-count.test.ts +44 -0
  440. package/src/utils/row-height-presets/index.ts +8 -0
  441. package/src/utils/row-height-presets/row-height-presets.ts +43 -0
  442. package/src/widget-dashboard.tsx +102 -0
  443. package/src/wordpress-commands.d.ts +12 -0
@@ -0,0 +1,240 @@
1
+ // packages/widget-dashboard/src/components/actions/actions.tsx
2
+ import { useSelect } from "@wordpress/data";
3
+ import { useCallback, useEffect, useState } from "@wordpress/element";
4
+ import { __ } from "@wordpress/i18n";
5
+ import { layout as layoutIcon, plus } from "@wordpress/icons";
6
+ import { store as viewportStore } from "@wordpress/viewport";
7
+ import { Button, Stack } from "@wordpress/ui";
8
+ import { useDashboardInternalContext } from "../../context/dashboard-context.mjs";
9
+ import { useDashboardUIContext } from "../../context/ui-context.mjs";
10
+ import { ActionsMenu } from "../actions-menu/index.mjs";
11
+
12
+ // packages/style-runtime/src/index.ts
13
+ var STYLE_HASH_ATTRIBUTE = "data-wp-hash";
14
+ function getRuntime() {
15
+ const globalScope = globalThis;
16
+ if (globalScope.__wpStyleRuntime) {
17
+ return globalScope.__wpStyleRuntime;
18
+ }
19
+ globalScope.__wpStyleRuntime = {
20
+ documents: /* @__PURE__ */ new Map(),
21
+ styles: /* @__PURE__ */ new Map(),
22
+ injectedStyles: /* @__PURE__ */ new WeakMap()
23
+ };
24
+ if (typeof document !== "undefined") {
25
+ registerDocument(document);
26
+ }
27
+ return globalScope.__wpStyleRuntime;
28
+ }
29
+ function documentContainsStyleHash(targetDocument, hash) {
30
+ if (!targetDocument.head) {
31
+ return false;
32
+ }
33
+ for (const style of targetDocument.head.querySelectorAll(
34
+ `style[${STYLE_HASH_ATTRIBUTE}]`
35
+ )) {
36
+ if (style.getAttribute(STYLE_HASH_ATTRIBUTE) === hash) {
37
+ return true;
38
+ }
39
+ }
40
+ return false;
41
+ }
42
+ function injectStyle(targetDocument, hash, css) {
43
+ if (!targetDocument.head) {
44
+ return;
45
+ }
46
+ const runtime = getRuntime();
47
+ let injectedStyles = runtime.injectedStyles.get(targetDocument);
48
+ if (!injectedStyles) {
49
+ injectedStyles = /* @__PURE__ */ new Set();
50
+ runtime.injectedStyles.set(targetDocument, injectedStyles);
51
+ }
52
+ if (injectedStyles.has(hash)) {
53
+ return;
54
+ }
55
+ if (documentContainsStyleHash(targetDocument, hash)) {
56
+ injectedStyles.add(hash);
57
+ return;
58
+ }
59
+ const style = targetDocument.createElement("style");
60
+ style.setAttribute(STYLE_HASH_ATTRIBUTE, hash);
61
+ style.appendChild(targetDocument.createTextNode(css));
62
+ targetDocument.head.appendChild(style);
63
+ injectedStyles.add(hash);
64
+ }
65
+ function registerDocument(targetDocument) {
66
+ const runtime = getRuntime();
67
+ runtime.documents.set(
68
+ targetDocument,
69
+ (runtime.documents.get(targetDocument) ?? 0) + 1
70
+ );
71
+ for (const [hash, css] of runtime.styles) {
72
+ injectStyle(targetDocument, hash, css);
73
+ }
74
+ return () => {
75
+ const count = runtime.documents.get(targetDocument);
76
+ if (count === void 0) {
77
+ return;
78
+ }
79
+ if (count <= 1) {
80
+ runtime.documents.delete(targetDocument);
81
+ return;
82
+ }
83
+ runtime.documents.set(targetDocument, count - 1);
84
+ };
85
+ }
86
+ function registerStyle(hash, css) {
87
+ const runtime = getRuntime();
88
+ runtime.styles.set(hash, css);
89
+ for (const targetDocument of runtime.documents.keys()) {
90
+ injectStyle(targetDocument, hash, css);
91
+ }
92
+ }
93
+
94
+ // packages/widget-dashboard/src/components/actions/actions.module.css
95
+ if (typeof process === "undefined" || process.env.NODE_ENV !== "test") {
96
+ registerStyle("207feb9ccc", "._273463df7651817f__editActionsEnter,._3cd6628039136a20__editActionsExit{align-items:center;display:inline-flex;gap:var(--wp--preset--spacing--20);transform-origin:right center}._572540719be6c8a3__editActionsDivider{align-self:center;background-color:var(--wpds-color-stroke-surface-neutral,#dbdbdb);flex-shrink:0;height:var(--wpds-dimension-size-2xs,16px);width:1px}@media not (prefers-reduced-motion){._273463df7651817f__editActionsEnter,._3cd6628039136a20__editActionsExit{will-change:opacity,transform}._273463df7651817f__editActionsEnter{animation:_332d3153b716aa20__actions-slide-in var(--wpds-motion-duration-md,.2s) var(--wpds-motion-easing-expressive,cubic-bezier(.25,0,0,1)) forwards}._3cd6628039136a20__editActionsExit{animation:_4dff70702a4b0f40__actions-fold-out var(--wpds-motion-duration-sm,.1s) var(--wpds-motion-easing-balanced,cubic-bezier(.4,0,.2,1)) forwards}@keyframes _332d3153b716aa20__actions-slide-in{0%{opacity:0;transform:translateX(12px) scaleX(.92)}to{opacity:1;transform:translateX(0) scaleX(1)}}@keyframes _4dff70702a4b0f40__actions-fold-out{0%{opacity:1;transform:translateX(0) scaleX(1)}to{opacity:0;transform:translateX(12px) scaleX(.92)}}}");
97
+ }
98
+ var actions_default = { "editActionsEnter": "_273463df7651817f__editActionsEnter", "editActionsExit": "_3cd6628039136a20__editActionsExit", "editActionsDivider": "_572540719be6c8a3__editActionsDivider", "actions-slide-in": "_332d3153b716aa20__actions-slide-in", "actions-fold-out": "_4dff70702a4b0f40__actions-fold-out" };
99
+
100
+ // packages/widget-dashboard/src/components/actions/actions.tsx
101
+ import { jsx, jsxs } from "react/jsx-runtime";
102
+ function Actions() {
103
+ const {
104
+ editMode,
105
+ onEditChange,
106
+ onLayoutReset,
107
+ commit,
108
+ cancel: cancelStaging,
109
+ hasUncommittedChanges,
110
+ canEditGridSettings
111
+ } = useDashboardInternalContext();
112
+ const [isEditActionsMounted, setIsEditActionsMounted] = useState(editMode);
113
+ const [isExitingEditActions, setIsExitingEditActions] = useState(false);
114
+ useEffect(() => {
115
+ if (editMode) {
116
+ setIsEditActionsMounted(true);
117
+ setIsExitingEditActions(false);
118
+ return;
119
+ }
120
+ if (!isEditActionsMounted) {
121
+ return;
122
+ }
123
+ setIsExitingEditActions(true);
124
+ const exitTimeout = setTimeout(() => {
125
+ setIsEditActionsMounted(false);
126
+ setIsExitingEditActions(false);
127
+ }, 220);
128
+ return () => clearTimeout(exitTimeout);
129
+ }, [editMode, isEditActionsMounted]);
130
+ const { setInserterOpen, setLayoutSettingsOpen, setResetDialogOpen } = useDashboardUIContext();
131
+ const isMobileViewport = useSelect(
132
+ (select) => select(viewportStore).isViewportMatch("< small"),
133
+ []
134
+ );
135
+ const handleEditMode = useCallback(() => {
136
+ onEditChange?.(!editMode);
137
+ }, [editMode, onEditChange]);
138
+ const insert = useCallback(() => {
139
+ setInserterOpen(true);
140
+ }, [setInserterOpen]);
141
+ const cancel = useCallback(() => {
142
+ cancelStaging();
143
+ }, [cancelStaging]);
144
+ const done = useCallback(() => {
145
+ commit();
146
+ }, [commit]);
147
+ const openLayoutSettings = useCallback(() => {
148
+ setLayoutSettingsOpen(true);
149
+ }, [setLayoutSettingsOpen]);
150
+ const menuItems = [
151
+ {
152
+ label: __("Reset to default"),
153
+ onClick: () => setResetDialogOpen(true),
154
+ disabled: !onLayoutReset
155
+ }
156
+ ];
157
+ if (!onEditChange) {
158
+ return null;
159
+ }
160
+ return /* @__PURE__ */ jsxs(Stack, { direction: "row", gap: "sm", children: [
161
+ isEditActionsMounted ? /* @__PURE__ */ jsxs(
162
+ Stack,
163
+ {
164
+ direction: "row",
165
+ gap: "sm",
166
+ className: isExitingEditActions ? actions_default.editActionsExit : actions_default.editActionsEnter,
167
+ children: [
168
+ /* @__PURE__ */ jsxs(
169
+ Button,
170
+ {
171
+ variant: "minimal",
172
+ tone: "brand",
173
+ size: "compact",
174
+ onClick: insert,
175
+ children: [
176
+ !isMobileViewport && /* @__PURE__ */ jsx(Button.Icon, { icon: plus }),
177
+ __("Add widget")
178
+ ]
179
+ }
180
+ ),
181
+ canEditGridSettings && /* @__PURE__ */ jsxs(
182
+ Button,
183
+ {
184
+ variant: "minimal",
185
+ tone: "brand",
186
+ size: "compact",
187
+ onClick: openLayoutSettings,
188
+ children: [
189
+ !isMobileViewport && /* @__PURE__ */ jsx(Button.Icon, { icon: layoutIcon }),
190
+ __("Layout settings")
191
+ ]
192
+ }
193
+ ),
194
+ /* @__PURE__ */ jsx(
195
+ "div",
196
+ {
197
+ className: actions_default.editActionsDivider,
198
+ "aria-hidden": "true"
199
+ }
200
+ ),
201
+ /* @__PURE__ */ jsx(
202
+ Button,
203
+ {
204
+ variant: "minimal",
205
+ tone: "brand",
206
+ size: "compact",
207
+ onClick: cancel,
208
+ children: __("Cancel")
209
+ }
210
+ ),
211
+ /* @__PURE__ */ jsx(
212
+ Button,
213
+ {
214
+ variant: "solid",
215
+ tone: "brand",
216
+ size: "compact",
217
+ onClick: done,
218
+ disabled: !hasUncommittedChanges,
219
+ children: __("Done")
220
+ }
221
+ )
222
+ ]
223
+ }
224
+ ) : /* @__PURE__ */ jsx(
225
+ Button,
226
+ {
227
+ variant: "minimal",
228
+ tone: "brand",
229
+ size: "compact",
230
+ onClick: handleEditMode,
231
+ children: __("Customize")
232
+ }
233
+ ),
234
+ /* @__PURE__ */ jsx(ActionsMenu, { items: menuItems })
235
+ ] });
236
+ }
237
+ export {
238
+ Actions
239
+ };
240
+ //# sourceMappingURL=actions.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/actions/actions.tsx", "../../../../style-runtime/src/index.ts", "../../../src/components/actions/actions.module.css"],
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { useCallback, useEffect, useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { layout as layoutIcon, plus } from '@wordpress/icons';\nimport { store as viewportStore } from '@wordpress/viewport';\n// eslint-disable-next-line @wordpress/use-recommended-components\nimport { Button, Stack } from '@wordpress/ui';\n\n/**\n * Internal dependencies\n */\nimport { useDashboardInternalContext } from '../../context/dashboard-context';\nimport { useDashboardUIContext } from '../../context/ui-context';\nimport { ActionsMenu } from '../actions-menu';\nimport type { ActionsMenuItem } from '../actions-menu';\nimport styles from './actions.module.css';\n\n/**\n * Edit toolbar for the dashboard. In customize mode it surfaces Add widget,\n * Layout settings (when grid settings are editable), Cancel, and Done;\n * otherwise a single Customize button. Buttons and the overflow menu are\n * triggers that flip the shared UI state the overlays react to.\n *\n * Returns `null` when mounted without `onEditChange`, so hosts that don't\n * expose edit mode can keep `Actions` in their tree unconditionally.\n */\nexport function Actions(): React.ReactNode {\n\tconst {\n\t\teditMode,\n\t\tonEditChange,\n\t\tonLayoutReset,\n\t\tcommit,\n\t\tcancel: cancelStaging,\n\t\thasUncommittedChanges,\n\t\tcanEditGridSettings,\n\t} = useDashboardInternalContext();\n\n\tconst [ isEditActionsMounted, setIsEditActionsMounted ] =\n\t\tuseState( editMode );\n\tconst [ isExitingEditActions, setIsExitingEditActions ] = useState( false );\n\n\tuseEffect( () => {\n\t\tif ( editMode ) {\n\t\t\tsetIsEditActionsMounted( true );\n\t\t\tsetIsExitingEditActions( false );\n\t\t\treturn;\n\t\t}\n\n\t\tif ( ! isEditActionsMounted ) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetIsExitingEditActions( true );\n\t\tconst exitTimeout = setTimeout( () => {\n\t\t\tsetIsEditActionsMounted( false );\n\t\t\tsetIsExitingEditActions( false );\n\t\t}, 220 );\n\n\t\treturn () => clearTimeout( exitTimeout );\n\t}, [ editMode, isEditActionsMounted ] );\n\n\tconst { setInserterOpen, setLayoutSettingsOpen, setResetDialogOpen } =\n\t\tuseDashboardUIContext();\n\t// @TODO: switch to using Admin UI declaratively for mobile viewport support once available.\n\t// https://github.com/WordPress/gutenberg/issues/77628\n\tconst isMobileViewport = useSelect(\n\t\t( select ) => select( viewportStore ).isViewportMatch( '< small' ),\n\t\t[]\n\t);\n\n\tconst handleEditMode = useCallback( () => {\n\t\tonEditChange?.( ! editMode );\n\t}, [ editMode, onEditChange ] );\n\n\tconst insert = useCallback( () => {\n\t\tsetInserterOpen( true );\n\t}, [ setInserterOpen ] );\n\n\tconst cancel = useCallback( () => {\n\t\tcancelStaging();\n\t}, [ cancelStaging ] );\n\n\tconst done = useCallback( () => {\n\t\tcommit();\n\t}, [ commit ] );\n\n\tconst openLayoutSettings = useCallback( () => {\n\t\tsetLayoutSettingsOpen( true );\n\t}, [ setLayoutSettingsOpen ] );\n\n\tconst menuItems: ActionsMenuItem[] = [\n\t\t{\n\t\t\tlabel: __( 'Reset to default' ),\n\t\t\tonClick: () => setResetDialogOpen( true ),\n\t\t\tdisabled: ! onLayoutReset,\n\t\t},\n\t];\n\n\tif ( ! onEditChange ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Stack direction=\"row\" gap=\"sm\">\n\t\t\t{ isEditActionsMounted ? (\n\t\t\t\t<Stack\n\t\t\t\t\tdirection=\"row\"\n\t\t\t\t\tgap=\"sm\"\n\t\t\t\t\tclassName={\n\t\t\t\t\t\tisExitingEditActions\n\t\t\t\t\t\t\t? styles.editActionsExit\n\t\t\t\t\t\t\t: styles.editActionsEnter\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"minimal\"\n\t\t\t\t\t\ttone=\"brand\"\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\tonClick={ insert }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ! isMobileViewport && <Button.Icon icon={ plus } /> }\n\t\t\t\t\t\t{ __( 'Add widget' ) }\n\t\t\t\t\t</Button>\n\n\t\t\t\t\t{ canEditGridSettings && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"minimal\"\n\t\t\t\t\t\t\ttone=\"brand\"\n\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\tonClick={ openLayoutSettings }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ ! isMobileViewport && (\n\t\t\t\t\t\t\t\t<Button.Icon icon={ layoutIcon } />\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ __( 'Layout settings' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t) }\n\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={ styles.editActionsDivider }\n\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t/>\n\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"minimal\"\n\t\t\t\t\t\ttone=\"brand\"\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\tonClick={ cancel }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t</Button>\n\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"solid\"\n\t\t\t\t\t\ttone=\"brand\"\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\tonClick={ done }\n\t\t\t\t\t\tdisabled={ ! hasUncommittedChanges }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Done' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</Stack>\n\t\t\t) : (\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"minimal\"\n\t\t\t\t\ttone=\"brand\"\n\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\tonClick={ handleEditMode }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Customize' ) }\n\t\t\t\t</Button>\n\t\t\t) }\n\n\t\t\t<ActionsMenu items={ menuItems } />\n\t\t</Stack>\n\t);\n}\n", "type GlobalScopeWithStyleRuntime = typeof globalThis & {\n\t// This global is shared by separately bundled copies of this package.\n\t// Keep its shape backward compatible after release.\n\t__wpStyleRuntime?: {\n\t\tdocuments: Map< Document, number >;\n\t\tstyles: Map< string, string >;\n\t\tinjectedStyles: WeakMap< Document, Set< string > >;\n\t};\n};\n\nconst STYLE_HASH_ATTRIBUTE = 'data-wp-hash';\n\n/**\n * Returns the shared style runtime registry.\n *\n * The registry is stored on `globalThis` so separately bundled copies of this\n * package can coordinate through the same document and style maps.\n *\n * @return The shared runtime registry.\n */\nfunction getRuntime() {\n\tconst globalScope = globalThis as GlobalScopeWithStyleRuntime;\n\n\tif ( globalScope.__wpStyleRuntime ) {\n\t\treturn globalScope.__wpStyleRuntime;\n\t}\n\n\tglobalScope.__wpStyleRuntime = {\n\t\tdocuments: new Map(),\n\t\tstyles: new Map(),\n\t\tinjectedStyles: new WeakMap(),\n\t};\n\n\tif ( typeof document !== 'undefined' ) {\n\t\tregisterDocument( document );\n\t}\n\n\treturn globalScope.__wpStyleRuntime;\n}\n\n/**\n * Checks whether a document already contains a style tag for a hash.\n *\n * @param targetDocument Document to inspect.\n * @param hash Stable hash for the transformed CSS.\n *\n * @return Whether the style hash already exists in the document.\n */\nfunction documentContainsStyleHash(\n\ttargetDocument: Document,\n\thash: string\n): boolean {\n\tif ( ! targetDocument.head ) {\n\t\treturn false;\n\t}\n\n\tfor ( const style of targetDocument.head.querySelectorAll(\n\t\t`style[${ STYLE_HASH_ATTRIBUTE }]`\n\t) ) {\n\t\tif ( style.getAttribute( STYLE_HASH_ATTRIBUTE ) === hash ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\treturn false;\n}\n\n/**\n * Injects a registered style into a document, unless that document already\n * contains a style tag for the same hash.\n *\n * @param targetDocument Document to inject the style into.\n * @param hash Stable hash for the transformed CSS.\n * @param css CSS text to inject.\n */\nfunction injectStyle( targetDocument: Document, hash: string, css: string ) {\n\tif ( ! targetDocument.head ) {\n\t\treturn;\n\t}\n\n\tconst runtime = getRuntime();\n\tlet injectedStyles = runtime.injectedStyles.get( targetDocument );\n\n\tif ( ! injectedStyles ) {\n\t\tinjectedStyles = new Set();\n\t\truntime.injectedStyles.set( targetDocument, injectedStyles );\n\t}\n\n\tif ( injectedStyles.has( hash ) ) {\n\t\treturn;\n\t}\n\n\t// Older generated CSS module output can still inject matching style tags\n\t// after this document's cache is created, so keep the DOM as the fallback\n\t// source of truth on cache misses.\n\tif ( documentContainsStyleHash( targetDocument, hash ) ) {\n\t\tinjectedStyles.add( hash );\n\t\treturn;\n\t}\n\n\tconst style = targetDocument.createElement( 'style' );\n\tstyle.setAttribute( STYLE_HASH_ATTRIBUTE, hash );\n\tstyle.appendChild( targetDocument.createTextNode( css ) );\n\ttargetDocument.head.appendChild( style );\n\tinjectedStyles.add( hash );\n}\n\n/**\n * Registers a document as a style injection target.\n *\n * Existing registered styles are replayed into the document immediately.\n * Documents are reference-counted so multiple providers can safely register the\n * same document without one cleanup removing it while another registration is\n * still active.\n *\n * @param targetDocument Document to receive registered styles.\n * @return Cleanup function that unregisters this document registration.\n */\nexport function registerDocument( targetDocument: Document ) {\n\tconst runtime = getRuntime();\n\n\truntime.documents.set(\n\t\ttargetDocument,\n\t\t( runtime.documents.get( targetDocument ) ?? 0 ) + 1\n\t);\n\n\tfor ( const [ hash, css ] of runtime.styles ) {\n\t\tinjectStyle( targetDocument, hash, css );\n\t}\n\n\treturn () => {\n\t\tconst count = runtime.documents.get( targetDocument );\n\n\t\tif ( count === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( count <= 1 ) {\n\t\t\truntime.documents.delete( targetDocument );\n\t\t\treturn;\n\t\t}\n\n\t\truntime.documents.set( targetDocument, count - 1 );\n\t};\n}\n\n/**\n * Registers a style and injects it into all registered documents.\n *\n * The hash is used as the deduplication key, so calling this repeatedly with\n * the same hash will not add duplicate style tags to a document.\n * Registered styles are retained for the lifetime of the page so they can be\n * replayed into documents that are registered later.\n *\n * @param hash Stable hash for the transformed CSS.\n * @param css CSS text to inject.\n */\nexport function registerStyle( hash: string, css: string ) {\n\tconst runtime = getRuntime();\n\n\truntime.styles.set( hash, css );\n\n\tfor ( const targetDocument of runtime.documents.keys() ) {\n\t\tinjectStyle( targetDocument, hash, css );\n\t}\n}\n", "import { registerStyle } from '@wordpress/style-runtime';\nif (typeof process === 'undefined' || process.env.NODE_ENV !== 'test') {\n\tregisterStyle(\"207feb9ccc\", \"._273463df7651817f__editActionsEnter,._3cd6628039136a20__editActionsExit{align-items:center;display:inline-flex;gap:var(--wp--preset--spacing--20);transform-origin:right center}._572540719be6c8a3__editActionsDivider{align-self:center;background-color:var(--wpds-color-stroke-surface-neutral,#dbdbdb);flex-shrink:0;height:var(--wpds-dimension-size-2xs,16px);width:1px}@media not (prefers-reduced-motion){._273463df7651817f__editActionsEnter,._3cd6628039136a20__editActionsExit{will-change:opacity,transform}._273463df7651817f__editActionsEnter{animation:_332d3153b716aa20__actions-slide-in var(--wpds-motion-duration-md,.2s) var(--wpds-motion-easing-expressive,cubic-bezier(.25,0,0,1)) forwards}._3cd6628039136a20__editActionsExit{animation:_4dff70702a4b0f40__actions-fold-out var(--wpds-motion-duration-sm,.1s) var(--wpds-motion-easing-balanced,cubic-bezier(.4,0,.2,1)) forwards}@keyframes _332d3153b716aa20__actions-slide-in{0%{opacity:0;transform:translateX(12px) scaleX(.92)}to{opacity:1;transform:translateX(0) scaleX(1)}}@keyframes _4dff70702a4b0f40__actions-fold-out{0%{opacity:1;transform:translateX(0) scaleX(1)}to{opacity:0;transform:translateX(12px) scaleX(.92)}}}\");\n}\nexport default {\"editActionsEnter\":\"_273463df7651817f__editActionsEnter\",\"editActionsExit\":\"_3cd6628039136a20__editActionsExit\",\"editActionsDivider\":\"_572540719be6c8a3__editActionsDivider\",\"actions-slide-in\":\"_332d3153b716aa20__actions-slide-in\",\"actions-fold-out\":\"_4dff70702a4b0f40__actions-fold-out\"};\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,6 @@
1
+ // packages/widget-dashboard/src/components/actions/index.ts
2
+ import { Actions } from "./actions.mjs";
3
+ export {
4
+ Actions
5
+ };
6
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/actions/index.ts"],
4
+ "sourcesContent": ["export { Actions } from './actions';\n"],
5
+ "mappings": ";AAAA,SAAS,eAAe;",
6
+ "names": []
7
+ }
@@ -0,0 +1,67 @@
1
+ // packages/widget-dashboard/src/components/actions-menu/actions-menu.tsx
2
+ import { privateApis as componentsPrivateApis } from "@wordpress/components";
3
+ import { __ } from "@wordpress/i18n";
4
+ import { moreVertical } from "@wordpress/icons";
5
+ import { Button, IconButton, Tooltip } from "@wordpress/ui";
6
+ import { unlock } from "../../lock-unlock.mjs";
7
+ import { jsx, jsxs } from "react/jsx-runtime";
8
+ var { Menu } = unlock(componentsPrivateApis);
9
+ function ActionsMenuEntry({ item }) {
10
+ const showDisabledTooltip = item.disabled && item.disabledTooltip;
11
+ const menuItem = /* @__PURE__ */ jsx(
12
+ Menu.Item,
13
+ {
14
+ disabled: item.disabled,
15
+ onClick: item.onClick,
16
+ render: /* @__PURE__ */ jsx(Button, { variant: "minimal", tone: "neutral" }),
17
+ children: item.label
18
+ }
19
+ );
20
+ if (!showDisabledTooltip) {
21
+ return menuItem;
22
+ }
23
+ return /* @__PURE__ */ jsxs(Tooltip.Root, { children: [
24
+ /* @__PURE__ */ jsx(
25
+ Tooltip.Trigger,
26
+ {
27
+ render: /* @__PURE__ */ jsx(
28
+ Menu.Item,
29
+ {
30
+ disabled: item.disabled,
31
+ onClick: item.onClick,
32
+ render: /* @__PURE__ */ jsx(Button, { variant: "minimal", tone: "neutral" })
33
+ }
34
+ ),
35
+ children: item.label
36
+ }
37
+ ),
38
+ /* @__PURE__ */ jsx(Tooltip.Popup, { positioner: /* @__PURE__ */ jsx(Tooltip.Positioner, { side: "bottom" }), children: item.disabledTooltip })
39
+ ] });
40
+ }
41
+ function ActionsMenu({ items }) {
42
+ if (items.length === 0) {
43
+ return null;
44
+ }
45
+ return /* @__PURE__ */ jsxs(Menu, { children: [
46
+ /* @__PURE__ */ jsx(
47
+ Menu.TriggerButton,
48
+ {
49
+ render: /* @__PURE__ */ jsx(
50
+ IconButton,
51
+ {
52
+ icon: moreVertical,
53
+ label: __("More options"),
54
+ variant: "minimal",
55
+ tone: "brand",
56
+ size: "compact"
57
+ }
58
+ )
59
+ }
60
+ ),
61
+ /* @__PURE__ */ jsx(Menu.Popover, { children: /* @__PURE__ */ jsx(Tooltip.Provider, { delay: 0, children: /* @__PURE__ */ jsx(Menu.Group, { children: items.map((item, index) => /* @__PURE__ */ jsx(ActionsMenuEntry, { item }, index)) }) }) })
62
+ ] });
63
+ }
64
+ export {
65
+ ActionsMenu
66
+ };
67
+ //# sourceMappingURL=actions-menu.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/actions-menu/actions-menu.tsx"],
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { privateApis as componentsPrivateApis } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { moreVertical } from '@wordpress/icons';\n// eslint-disable-next-line @wordpress/use-recommended-components\nimport { Button, IconButton, Tooltip } from '@wordpress/ui';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\n\nconst { Menu } = unlock( componentsPrivateApis );\n\nexport interface ActionsMenuItem {\n\tlabel: string;\n\tonClick: () => void;\n\tdisabled?: boolean;\n\t/**\n\t * Shown on hover when the item is disabled (for example, to explain\n\t * why the action is unavailable).\n\t */\n\tdisabledTooltip?: string;\n}\n\ninterface ActionsMenuProps {\n\titems: ActionsMenuItem[];\n}\n\nfunction ActionsMenuEntry( { item }: { item: ActionsMenuItem } ) {\n\tconst showDisabledTooltip = item.disabled && item.disabledTooltip;\n\n\tconst menuItem = (\n\t\t<Menu.Item\n\t\t\tdisabled={ item.disabled }\n\t\t\tonClick={ item.onClick }\n\t\t\trender={ <Button variant=\"minimal\" tone=\"neutral\" /> }\n\t\t>\n\t\t\t{ item.label }\n\t\t</Menu.Item>\n\t);\n\n\tif ( ! showDisabledTooltip ) {\n\t\treturn menuItem;\n\t}\n\n\treturn (\n\t\t<Tooltip.Root>\n\t\t\t<Tooltip.Trigger\n\t\t\t\trender={\n\t\t\t\t\t<Menu.Item\n\t\t\t\t\t\tdisabled={ item.disabled }\n\t\t\t\t\t\tonClick={ item.onClick }\n\t\t\t\t\t\trender={ <Button variant=\"minimal\" tone=\"neutral\" /> }\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t{ item.label }\n\t\t\t</Tooltip.Trigger>\n\t\t\t<Tooltip.Popup positioner={ <Tooltip.Positioner side=\"bottom\" /> }>\n\t\t\t\t{ item.disabledTooltip }\n\t\t\t</Tooltip.Popup>\n\t\t</Tooltip.Root>\n\t);\n}\n\n/**\n * Renders the dashboard's overflow menu: a three-dots trigger surfacing\n * secondary actions. Returns `null` when there are no items.\n *\n * @param {ActionsMenuProps} props Component props.\n */\nexport function ActionsMenu( { items }: ActionsMenuProps ): React.ReactNode {\n\tif ( items.length === 0 ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Menu>\n\t\t\t<Menu.TriggerButton\n\t\t\t\trender={\n\t\t\t\t\t<IconButton\n\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\tlabel={ __( 'More options' ) }\n\t\t\t\t\t\tvariant=\"minimal\"\n\t\t\t\t\t\ttone=\"brand\"\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t/>\n\t\t\t<Menu.Popover>\n\t\t\t\t<Tooltip.Provider delay={ 0 }>\n\t\t\t\t\t<Menu.Group>\n\t\t\t\t\t\t{ items.map( ( item, index ) => (\n\t\t\t\t\t\t\t<ActionsMenuEntry key={ index } item={ item } />\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t</Menu.Group>\n\t\t\t\t</Tooltip.Provider>\n\t\t\t</Menu.Popover>\n\t\t</Menu>\n\t);\n}\n"],
5
+ "mappings": ";AAGA,SAAS,eAAe,6BAA6B;AACrD,SAAS,UAAU;AACnB,SAAS,oBAAoB;AAE7B,SAAS,QAAQ,YAAY,eAAe;AAK5C,SAAS,cAAc;AA0BX,cAWV,YAXU;AAxBZ,IAAM,EAAE,KAAK,IAAI,OAAQ,qBAAsB;AAiB/C,SAAS,iBAAkB,EAAE,KAAK,GAA+B;AAChE,QAAM,sBAAsB,KAAK,YAAY,KAAK;AAElD,QAAM,WACL;AAAA,IAAC,KAAK;AAAA,IAAL;AAAA,MACA,UAAW,KAAK;AAAA,MAChB,SAAU,KAAK;AAAA,MACf,QAAS,oBAAC,UAAO,SAAQ,WAAU,MAAK,WAAU;AAAA,MAEhD,eAAK;AAAA;AAAA,EACR;AAGD,MAAK,CAAE,qBAAsB;AAC5B,WAAO;AAAA,EACR;AAEA,SACC,qBAAC,QAAQ,MAAR,EACA;AAAA;AAAA,MAAC,QAAQ;AAAA,MAAR;AAAA,QACA,QACC;AAAA,UAAC,KAAK;AAAA,UAAL;AAAA,YACA,UAAW,KAAK;AAAA,YAChB,SAAU,KAAK;AAAA,YACf,QAAS,oBAAC,UAAO,SAAQ,WAAU,MAAK,WAAU;AAAA;AAAA,QACnD;AAAA,QAGC,eAAK;AAAA;AAAA,IACR;AAAA,IACA,oBAAC,QAAQ,OAAR,EAAc,YAAa,oBAAC,QAAQ,YAAR,EAAmB,MAAK,UAAS,GAC3D,eAAK,iBACR;AAAA,KACD;AAEF;AAQO,SAAS,YAAa,EAAE,MAAM,GAAuC;AAC3E,MAAK,MAAM,WAAW,GAAI;AACzB,WAAO;AAAA,EACR;AAEA,SACC,qBAAC,QACA;AAAA;AAAA,MAAC,KAAK;AAAA,MAAL;AAAA,QACA,QACC;AAAA,UAAC;AAAA;AAAA,YACA,MAAO;AAAA,YACP,OAAQ,GAAI,cAAe;AAAA,YAC3B,SAAQ;AAAA,YACR,MAAK;AAAA,YACL,MAAK;AAAA;AAAA,QACN;AAAA;AAAA,IAEF;AAAA,IACA,oBAAC,KAAK,SAAL,EACA,8BAAC,QAAQ,UAAR,EAAiB,OAAQ,GACzB,8BAAC,KAAK,OAAL,EACE,gBAAM,IAAK,CAAE,MAAM,UACpB,oBAAC,oBAA+B,QAAR,KAAsB,CAC7C,GACH,GACD,GACD;AAAA,KACD;AAEF;",
6
+ "names": []
7
+ }
@@ -0,0 +1,6 @@
1
+ // packages/widget-dashboard/src/components/actions-menu/index.ts
2
+ import { ActionsMenu } from "./actions-menu.mjs";
3
+ export {
4
+ ActionsMenu
5
+ };
6
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/actions-menu/index.ts"],
4
+ "sourcesContent": ["export { ActionsMenu } from './actions-menu';\nexport type { ActionsMenuItem } from './actions-menu';\n"],
5
+ "mappings": ";AAAA,SAAS,mBAAmB;",
6
+ "names": []
7
+ }
@@ -0,0 +1,160 @@
1
+ // packages/widget-dashboard/src/components/commands/commands.tsx
2
+ import { useCallback, useMemo } from "@wordpress/element";
3
+ import { __ } from "@wordpress/i18n";
4
+ import {
5
+ useCommands,
6
+ privateApis as commandsPrivateApis
7
+ } from "@wordpress/commands";
8
+ import {
9
+ columns,
10
+ grid,
11
+ layout as layoutIcon,
12
+ plus,
13
+ trash
14
+ } from "@wordpress/icons";
15
+ import { unlock } from "../../lock-unlock.mjs";
16
+ import { useDashboardInternalContext } from "../../context/dashboard-context.mjs";
17
+ import { useDashboardUIContext } from "../../context/ui-context.mjs";
18
+ import { getGridModel } from "../../utils/grid-model-change/index.mjs";
19
+ import { usePendingWhenEditMode } from "./use-pending-when-edit-mode.mjs";
20
+ var { useCommandContext } = unlock(commandsPrivateApis);
21
+ var DASHBOARD_COMMAND_CONTEXT = "dashboard";
22
+ function Commands() {
23
+ const {
24
+ editMode,
25
+ onEditChange,
26
+ onLayoutReset,
27
+ gridSettings,
28
+ canEditGridSettings,
29
+ commitGridModelChange
30
+ } = useDashboardInternalContext();
31
+ const { setInserterOpen, setResetDialogOpen } = useDashboardUIContext();
32
+ useCommandContext(DASHBOARD_COMMAND_CONTEXT);
33
+ const runWhenInEditMode = usePendingWhenEditMode({
34
+ editMode,
35
+ onEditChange
36
+ });
37
+ const gridModel = getGridModel(gridSettings);
38
+ const isGridLayout = gridModel === "grid";
39
+ const isMasonryLayout = gridModel === "masonry";
40
+ const switchToMasonry = useCallback(
41
+ ({ close }) => {
42
+ close();
43
+ commitGridModelChange("masonry");
44
+ },
45
+ [commitGridModelChange]
46
+ );
47
+ const switchToGrid = useCallback(
48
+ ({ close }) => {
49
+ close();
50
+ commitGridModelChange("grid");
51
+ },
52
+ [commitGridModelChange]
53
+ );
54
+ const resetToDefault = useCallback(
55
+ ({ close }) => {
56
+ close();
57
+ setResetDialogOpen(true);
58
+ },
59
+ [setResetDialogOpen]
60
+ );
61
+ const addWidgets = useCallback(
62
+ ({ close }) => {
63
+ close();
64
+ runWhenInEditMode(() => {
65
+ setInserterOpen(true);
66
+ });
67
+ },
68
+ [runWhenInEditMode, setInserterOpen]
69
+ );
70
+ const customize = useCallback(
71
+ ({ close }) => {
72
+ close();
73
+ onEditChange?.(true);
74
+ },
75
+ [onEditChange]
76
+ );
77
+ const commands = useMemo(
78
+ () => [
79
+ {
80
+ name: "core/dashboard/customize",
81
+ label: __("Customize dashboard"),
82
+ icon: layoutIcon,
83
+ category: "command",
84
+ context: DASHBOARD_COMMAND_CONTEXT,
85
+ keywords: [__("edit"), __("widgets"), __("layout")],
86
+ disabled: !onEditChange || editMode,
87
+ callback: customize
88
+ },
89
+ {
90
+ name: "core/dashboard/add-widgets",
91
+ label: __("Add dashboard widgets"),
92
+ icon: plus,
93
+ category: "command",
94
+ context: DASHBOARD_COMMAND_CONTEXT,
95
+ keywords: [__("widgets"), __("inserter")],
96
+ disabled: !onEditChange,
97
+ callback: addWidgets
98
+ },
99
+ {
100
+ name: "core/dashboard/switch-to-masonry-layout",
101
+ label: __("Switch dashboard to masonry layout"),
102
+ icon: columns,
103
+ category: "command",
104
+ context: DASHBOARD_COMMAND_CONTEXT,
105
+ keywords: [
106
+ __("layout"),
107
+ __("layout model"),
108
+ __("masonry")
109
+ ],
110
+ disabled: !canEditGridSettings || isMasonryLayout || editMode,
111
+ callback: switchToMasonry
112
+ },
113
+ {
114
+ name: "core/dashboard/switch-to-grid-layout",
115
+ label: __("Switch dashboard to grid layout"),
116
+ icon: grid,
117
+ category: "command",
118
+ context: DASHBOARD_COMMAND_CONTEXT,
119
+ keywords: [
120
+ __("layout"),
121
+ __("layout model"),
122
+ __("grid"),
123
+ __("standard grid")
124
+ ],
125
+ disabled: !canEditGridSettings || isGridLayout || editMode,
126
+ callback: switchToGrid
127
+ },
128
+ {
129
+ name: "core/dashboard/reset-to-default",
130
+ label: __("Reset dashboard widgets to default"),
131
+ icon: trash,
132
+ category: "command",
133
+ context: DASHBOARD_COMMAND_CONTEXT,
134
+ keywords: [__("reset"), __("default")],
135
+ disabled: !onLayoutReset,
136
+ callback: resetToDefault
137
+ }
138
+ ],
139
+ [
140
+ onEditChange,
141
+ editMode,
142
+ customize,
143
+ addWidgets,
144
+ canEditGridSettings,
145
+ isMasonryLayout,
146
+ isGridLayout,
147
+ switchToMasonry,
148
+ switchToGrid,
149
+ onLayoutReset,
150
+ resetToDefault
151
+ ]
152
+ );
153
+ useCommands(commands);
154
+ return null;
155
+ }
156
+ export {
157
+ Commands,
158
+ DASHBOARD_COMMAND_CONTEXT
159
+ };
160
+ //# sourceMappingURL=commands.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/commands/commands.tsx"],
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useCallback, useMemo } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tuseCommands,\n\tprivateApis as commandsPrivateApis,\n} from '@wordpress/commands';\nimport {\n\tcolumns,\n\tgrid,\n\tlayout as layoutIcon,\n\tplus,\n\ttrash,\n} from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport { useDashboardInternalContext } from '../../context/dashboard-context';\nimport { useDashboardUIContext } from '../../context/ui-context';\nimport { getGridModel } from '../../utils/grid-model-change';\nimport { usePendingWhenEditMode } from './use-pending-when-edit-mode';\n\nconst { useCommandContext } = unlock( commandsPrivateApis );\n\nexport const DASHBOARD_COMMAND_CONTEXT = 'dashboard';\n\ntype CommandCallback = ( options: { close: () => void } ) => void;\n\n/**\n * Registers dashboard-specific command palette commands and sets the\n * active command context so they surface under Suggestions by default.\n */\nexport function Commands() {\n\tconst {\n\t\teditMode,\n\t\tonEditChange,\n\t\tonLayoutReset,\n\t\tgridSettings,\n\t\tcanEditGridSettings,\n\t\tcommitGridModelChange,\n\t} = useDashboardInternalContext();\n\n\tconst { setInserterOpen, setResetDialogOpen } = useDashboardUIContext();\n\n\tuseCommandContext( DASHBOARD_COMMAND_CONTEXT );\n\n\tconst runWhenInEditMode = usePendingWhenEditMode( {\n\t\teditMode,\n\t\tonEditChange,\n\t} );\n\n\tconst gridModel = getGridModel( gridSettings );\n\tconst isGridLayout = gridModel === 'grid';\n\tconst isMasonryLayout = gridModel === 'masonry';\n\n\tconst switchToMasonry = useCallback< CommandCallback >(\n\t\t( { close } ) => {\n\t\t\tclose();\n\t\t\tcommitGridModelChange( 'masonry' );\n\t\t},\n\t\t[ commitGridModelChange ]\n\t);\n\n\tconst switchToGrid = useCallback< CommandCallback >(\n\t\t( { close } ) => {\n\t\t\tclose();\n\t\t\tcommitGridModelChange( 'grid' );\n\t\t},\n\t\t[ commitGridModelChange ]\n\t);\n\n\tconst resetToDefault = useCallback< CommandCallback >(\n\t\t( { close } ) => {\n\t\t\tclose();\n\t\t\tsetResetDialogOpen( true );\n\t\t},\n\t\t[ setResetDialogOpen ]\n\t);\n\n\tconst addWidgets = useCallback< CommandCallback >(\n\t\t( { close } ) => {\n\t\t\tclose();\n\t\t\trunWhenInEditMode( () => {\n\t\t\t\tsetInserterOpen( true );\n\t\t\t} );\n\t\t},\n\t\t[ runWhenInEditMode, setInserterOpen ]\n\t);\n\n\tconst customize = useCallback< CommandCallback >(\n\t\t( { close } ) => {\n\t\t\tclose();\n\t\t\tonEditChange?.( true );\n\t\t},\n\t\t[ onEditChange ]\n\t);\n\n\tconst commands = useMemo(\n\t\t() => [\n\t\t\t{\n\t\t\t\tname: 'core/dashboard/customize',\n\t\t\t\tlabel: __( 'Customize dashboard' ),\n\t\t\t\ticon: layoutIcon,\n\t\t\t\tcategory: 'command',\n\t\t\t\tcontext: DASHBOARD_COMMAND_CONTEXT,\n\t\t\t\tkeywords: [ __( 'edit' ), __( 'widgets' ), __( 'layout' ) ],\n\t\t\t\tdisabled: ! onEditChange || editMode,\n\t\t\t\tcallback: customize,\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/dashboard/add-widgets',\n\t\t\t\tlabel: __( 'Add dashboard widgets' ),\n\t\t\t\ticon: plus,\n\t\t\t\tcategory: 'command',\n\t\t\t\tcontext: DASHBOARD_COMMAND_CONTEXT,\n\t\t\t\tkeywords: [ __( 'widgets' ), __( 'inserter' ) ],\n\t\t\t\tdisabled: ! onEditChange,\n\t\t\t\tcallback: addWidgets,\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/dashboard/switch-to-masonry-layout',\n\t\t\t\tlabel: __( 'Switch dashboard to masonry layout' ),\n\t\t\t\ticon: columns,\n\t\t\t\tcategory: 'command',\n\t\t\t\tcontext: DASHBOARD_COMMAND_CONTEXT,\n\t\t\t\tkeywords: [\n\t\t\t\t\t__( 'layout' ),\n\t\t\t\t\t__( 'layout model' ),\n\t\t\t\t\t__( 'masonry' ),\n\t\t\t\t],\n\t\t\t\tdisabled: ! canEditGridSettings || isMasonryLayout || editMode,\n\t\t\t\tcallback: switchToMasonry,\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/dashboard/switch-to-grid-layout',\n\t\t\t\tlabel: __( 'Switch dashboard to grid layout' ),\n\t\t\t\ticon: grid,\n\t\t\t\tcategory: 'command',\n\t\t\t\tcontext: DASHBOARD_COMMAND_CONTEXT,\n\t\t\t\tkeywords: [\n\t\t\t\t\t__( 'layout' ),\n\t\t\t\t\t__( 'layout model' ),\n\t\t\t\t\t__( 'grid' ),\n\t\t\t\t\t__( 'standard grid' ),\n\t\t\t\t],\n\t\t\t\tdisabled: ! canEditGridSettings || isGridLayout || editMode,\n\t\t\t\tcallback: switchToGrid,\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/dashboard/reset-to-default',\n\t\t\t\tlabel: __( 'Reset dashboard widgets to default' ),\n\t\t\t\ticon: trash,\n\t\t\t\tcategory: 'command',\n\t\t\t\tcontext: DASHBOARD_COMMAND_CONTEXT,\n\t\t\t\tkeywords: [ __( 'reset' ), __( 'default' ) ],\n\t\t\t\tdisabled: ! onLayoutReset,\n\t\t\t\tcallback: resetToDefault,\n\t\t\t},\n\t\t],\n\t\t[\n\t\t\tonEditChange,\n\t\t\teditMode,\n\t\t\tcustomize,\n\t\t\taddWidgets,\n\t\t\tcanEditGridSettings,\n\t\t\tisMasonryLayout,\n\t\t\tisGridLayout,\n\t\t\tswitchToMasonry,\n\t\t\tswitchToGrid,\n\t\t\tonLayoutReset,\n\t\t\tresetToDefault,\n\t\t]\n\t);\n\n\tuseCommands( commands );\n\n\treturn null;\n}\n"],
5
+ "mappings": ";AAGA,SAAS,aAAa,eAAe;AACrC,SAAS,UAAU;AACnB;AAAA,EACC;AAAA,EACA,eAAe;AAAA,OACT;AACP;AAAA,EACC;AAAA,EACA;AAAA,EACA,UAAU;AAAA,EACV;AAAA,EACA;AAAA,OACM;AAKP,SAAS,cAAc;AACvB,SAAS,mCAAmC;AAC5C,SAAS,6BAA6B;AACtC,SAAS,oBAAoB;AAC7B,SAAS,8BAA8B;AAEvC,IAAM,EAAE,kBAAkB,IAAI,OAAQ,mBAAoB;AAEnD,IAAM,4BAA4B;AAQlC,SAAS,WAAW;AAC1B,QAAM;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,IAAI,4BAA4B;AAEhC,QAAM,EAAE,iBAAiB,mBAAmB,IAAI,sBAAsB;AAEtE,oBAAmB,yBAA0B;AAE7C,QAAM,oBAAoB,uBAAwB;AAAA,IACjD;AAAA,IACA;AAAA,EACD,CAAE;AAEF,QAAM,YAAY,aAAc,YAAa;AAC7C,QAAM,eAAe,cAAc;AACnC,QAAM,kBAAkB,cAAc;AAEtC,QAAM,kBAAkB;AAAA,IACvB,CAAE,EAAE,MAAM,MAAO;AAChB,YAAM;AACN,4BAAuB,SAAU;AAAA,IAClC;AAAA,IACA,CAAE,qBAAsB;AAAA,EACzB;AAEA,QAAM,eAAe;AAAA,IACpB,CAAE,EAAE,MAAM,MAAO;AAChB,YAAM;AACN,4BAAuB,MAAO;AAAA,IAC/B;AAAA,IACA,CAAE,qBAAsB;AAAA,EACzB;AAEA,QAAM,iBAAiB;AAAA,IACtB,CAAE,EAAE,MAAM,MAAO;AAChB,YAAM;AACN,yBAAoB,IAAK;AAAA,IAC1B;AAAA,IACA,CAAE,kBAAmB;AAAA,EACtB;AAEA,QAAM,aAAa;AAAA,IAClB,CAAE,EAAE,MAAM,MAAO;AAChB,YAAM;AACN,wBAAmB,MAAM;AACxB,wBAAiB,IAAK;AAAA,MACvB,CAAE;AAAA,IACH;AAAA,IACA,CAAE,mBAAmB,eAAgB;AAAA,EACtC;AAEA,QAAM,YAAY;AAAA,IACjB,CAAE,EAAE,MAAM,MAAO;AAChB,YAAM;AACN,qBAAgB,IAAK;AAAA,IACtB;AAAA,IACA,CAAE,YAAa;AAAA,EAChB;AAEA,QAAM,WAAW;AAAA,IAChB,MAAM;AAAA,MACL;AAAA,QACC,MAAM;AAAA,QACN,OAAO,GAAI,qBAAsB;AAAA,QACjC,MAAM;AAAA,QACN,UAAU;AAAA,QACV,SAAS;AAAA,QACT,UAAU,CAAE,GAAI,MAAO,GAAG,GAAI,SAAU,GAAG,GAAI,QAAS,CAAE;AAAA,QAC1D,UAAU,CAAE,gBAAgB;AAAA,QAC5B,UAAU;AAAA,MACX;AAAA,MACA;AAAA,QACC,MAAM;AAAA,QACN,OAAO,GAAI,uBAAwB;AAAA,QACnC,MAAM;AAAA,QACN,UAAU;AAAA,QACV,SAAS;AAAA,QACT,UAAU,CAAE,GAAI,SAAU,GAAG,GAAI,UAAW,CAAE;AAAA,QAC9C,UAAU,CAAE;AAAA,QACZ,UAAU;AAAA,MACX;AAAA,MACA;AAAA,QACC,MAAM;AAAA,QACN,OAAO,GAAI,oCAAqC;AAAA,QAChD,MAAM;AAAA,QACN,UAAU;AAAA,QACV,SAAS;AAAA,QACT,UAAU;AAAA,UACT,GAAI,QAAS;AAAA,UACb,GAAI,cAAe;AAAA,UACnB,GAAI,SAAU;AAAA,QACf;AAAA,QACA,UAAU,CAAE,uBAAuB,mBAAmB;AAAA,QACtD,UAAU;AAAA,MACX;AAAA,MACA;AAAA,QACC,MAAM;AAAA,QACN,OAAO,GAAI,iCAAkC;AAAA,QAC7C,MAAM;AAAA,QACN,UAAU;AAAA,QACV,SAAS;AAAA,QACT,UAAU;AAAA,UACT,GAAI,QAAS;AAAA,UACb,GAAI,cAAe;AAAA,UACnB,GAAI,MAAO;AAAA,UACX,GAAI,eAAgB;AAAA,QACrB;AAAA,QACA,UAAU,CAAE,uBAAuB,gBAAgB;AAAA,QACnD,UAAU;AAAA,MACX;AAAA,MACA;AAAA,QACC,MAAM;AAAA,QACN,OAAO,GAAI,oCAAqC;AAAA,QAChD,MAAM;AAAA,QACN,UAAU;AAAA,QACV,SAAS;AAAA,QACT,UAAU,CAAE,GAAI,OAAQ,GAAG,GAAI,SAAU,CAAE;AAAA,QAC3C,UAAU,CAAE;AAAA,QACZ,UAAU;AAAA,MACX;AAAA,IACD;AAAA,IACA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACD;AAAA,EACD;AAEA,cAAa,QAAS;AAEtB,SAAO;AACR;",
6
+ "names": []
7
+ }
@@ -0,0 +1,7 @@
1
+ // packages/widget-dashboard/src/components/commands/index.ts
2
+ import { Commands, DASHBOARD_COMMAND_CONTEXT } from "./commands.mjs";
3
+ export {
4
+ Commands,
5
+ DASHBOARD_COMMAND_CONTEXT
6
+ };
7
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/commands/index.ts"],
4
+ "sourcesContent": ["export { Commands, DASHBOARD_COMMAND_CONTEXT } from './commands';\n"],
5
+ "mappings": ";AAAA,SAAS,UAAU,iCAAiC;",
6
+ "names": []
7
+ }
@@ -0,0 +1,32 @@
1
+ // packages/widget-dashboard/src/components/commands/use-pending-when-edit-mode.ts
2
+ import { useCallback, useEffect, useRef } from "@wordpress/element";
3
+ function usePendingWhenEditMode({
4
+ editMode,
5
+ onEditChange
6
+ }) {
7
+ const pendingRef = useRef(null);
8
+ const wasEditingRef = useRef(editMode);
9
+ useEffect(() => {
10
+ if (!wasEditingRef.current && editMode && pendingRef.current) {
11
+ const action = pendingRef.current;
12
+ pendingRef.current = null;
13
+ action();
14
+ }
15
+ wasEditingRef.current = editMode;
16
+ }, [editMode]);
17
+ return useCallback(
18
+ (action) => {
19
+ if (editMode) {
20
+ action();
21
+ return;
22
+ }
23
+ pendingRef.current = action;
24
+ onEditChange?.(true);
25
+ },
26
+ [editMode, onEditChange]
27
+ );
28
+ }
29
+ export {
30
+ usePendingWhenEditMode
31
+ };
32
+ //# sourceMappingURL=use-pending-when-edit-mode.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/commands/use-pending-when-edit-mode.ts"],
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useCallback, useEffect, useRef } from '@wordpress/element';\n\ntype UsePendingWhenEditModeProps = {\n\teditMode: boolean;\n\tonEditChange?: ( next: boolean ) => void;\n};\n\ntype UsePendingWhenEditModeResult = ( action: () => void ) => void;\n\n/**\n * Runs an action immediately when already in edit mode. Otherwise enables\n * edit mode and runs the action after edit mode becomes active.\n *\n * @param {UsePendingWhenEditModeProps} params Current edit mode and the change handler.\n * @return {UsePendingWhenEditModeResult} Runs an action, deferring it until edit mode is active.\n */\nexport function usePendingWhenEditMode( {\n\teditMode,\n\tonEditChange,\n}: UsePendingWhenEditModeProps ): UsePendingWhenEditModeResult {\n\tconst pendingRef = useRef< ( () => void ) | null >( null );\n\tconst wasEditingRef = useRef( editMode );\n\n\tuseEffect( () => {\n\t\tif ( ! wasEditingRef.current && editMode && pendingRef.current ) {\n\t\t\tconst action = pendingRef.current;\n\t\t\tpendingRef.current = null;\n\t\t\taction();\n\t\t}\n\t\twasEditingRef.current = editMode;\n\t}, [ editMode ] );\n\n\treturn useCallback(\n\t\t( action: () => void ) => {\n\t\t\tif ( editMode ) {\n\t\t\t\taction();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tpendingRef.current = action;\n\t\t\tonEditChange?.( true );\n\t\t},\n\t\t[ editMode, onEditChange ]\n\t);\n}\n"],
5
+ "mappings": ";AAGA,SAAS,aAAa,WAAW,cAAc;AAgBxC,SAAS,uBAAwB;AAAA,EACvC;AAAA,EACA;AACD,GAA+D;AAC9D,QAAM,aAAa,OAAiC,IAAK;AACzD,QAAM,gBAAgB,OAAQ,QAAS;AAEvC,YAAW,MAAM;AAChB,QAAK,CAAE,cAAc,WAAW,YAAY,WAAW,SAAU;AAChE,YAAM,SAAS,WAAW;AAC1B,iBAAW,UAAU;AACrB,aAAO;AAAA,IACR;AACA,kBAAc,UAAU;AAAA,EACzB,GAAG,CAAE,QAAS,CAAE;AAEhB,SAAO;AAAA,IACN,CAAE,WAAwB;AACzB,UAAK,UAAW;AACf,eAAO;AACP;AAAA,MACD;AAEA,iBAAW,UAAU;AACrB,qBAAgB,IAAK;AAAA,IACtB;AAAA,IACA,CAAE,UAAU,YAAa;AAAA,EAC1B;AACD;",
6
+ "names": []
7
+ }
@@ -0,0 +1,6 @@
1
+ // packages/widget-dashboard/src/components/layout-settings/index.ts
2
+ import { LayoutSettings } from "./layout-settings.mjs";
3
+ export {
4
+ LayoutSettings
5
+ };
6
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/layout-settings/index.ts"],
4
+ "sourcesContent": ["export { LayoutSettings } from './layout-settings';\n"],
5
+ "mappings": ";AAAA,SAAS,sBAAsB;",
6
+ "names": []
7
+ }