@wordpress/block-library 9.40.2-next.v.202602241322.0 → 9.40.2

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 (226) hide show
  1. package/build/comment-reply-link/edit.cjs +2 -1
  2. package/build/comment-reply-link/edit.cjs.map +2 -2
  3. package/build/comments/edit/placeholder.cjs +2 -1
  4. package/build/comments/edit/placeholder.cjs.map +2 -2
  5. package/build/cover/edit/index.cjs +39 -26
  6. package/build/cover/edit/index.cjs.map +2 -2
  7. package/build/cover/embed-video-utils.cjs +8 -6
  8. package/build/cover/embed-video-utils.cjs.map +2 -2
  9. package/build/embed/embed-preview.cjs +2 -1
  10. package/build/embed/embed-preview.cjs.map +2 -2
  11. package/build/html/block.json +2 -1
  12. package/build/html/modal.cjs +147 -230
  13. package/build/html/modal.cjs.map +3 -3
  14. package/build/icon/block.json +3 -12
  15. package/build/image/image.cjs +1 -1
  16. package/build/image/image.cjs.map +2 -2
  17. package/build/latest-comments/deprecated.cjs +33 -0
  18. package/build/latest-comments/deprecated.cjs.map +2 -2
  19. package/build/navigation/edit/index.cjs +123 -119
  20. package/build/navigation/edit/index.cjs.map +3 -3
  21. package/build/navigation/edit/navigation-menu-selector.cjs +2 -1
  22. package/build/navigation/edit/navigation-menu-selector.cjs.map +2 -2
  23. package/build/navigation/view.cjs +9 -2
  24. package/build/navigation/view.cjs.map +2 -2
  25. package/build/navigation-link/edit.cjs +2 -1
  26. package/build/navigation-link/edit.cjs.map +2 -2
  27. package/build/navigation-link/shared/controls.cjs +29 -52
  28. package/build/navigation-link/shared/controls.cjs.map +3 -3
  29. package/build/navigation-link/shared/use-handle-link-change.cjs +19 -3
  30. package/build/navigation-link/shared/use-handle-link-change.cjs.map +3 -3
  31. package/build/navigation-link/shared/use-link-preview.cjs +8 -9
  32. package/build/navigation-link/shared/use-link-preview.cjs.map +2 -2
  33. package/build/navigation-submenu/edit.cjs +8 -22
  34. package/build/navigation-submenu/edit.cjs.map +2 -2
  35. package/build/nextpage/block.json +0 -1
  36. package/build/page-list-item/edit.cjs +6 -3
  37. package/build/page-list-item/edit.cjs.map +2 -2
  38. package/build/paragraph/edit.cjs +1 -1
  39. package/build/paragraph/edit.cjs.map +1 -1
  40. package/build/post-navigation-link/block.json +3 -1
  41. package/build/post-navigation-link/edit.cjs +36 -2
  42. package/build/post-navigation-link/edit.cjs.map +3 -3
  43. package/build/post-navigation-link/index.cjs +0 -2
  44. package/build/post-navigation-link/index.cjs.map +3 -3
  45. package/build/post-title/block.json +3 -1
  46. package/build/post-title/deprecated.cjs +1 -82
  47. package/build/post-title/deprecated.cjs.map +3 -3
  48. package/build/post-title/edit.cjs +36 -10
  49. package/build/post-title/edit.cjs.map +3 -3
  50. package/build/query-title/block.json +3 -1
  51. package/build/query-title/deprecated.cjs +1 -70
  52. package/build/query-title/deprecated.cjs.map +3 -3
  53. package/build/query-title/edit.cjs +35 -17
  54. package/build/query-title/edit.cjs.map +3 -3
  55. package/build/shortcode/block.json +2 -1
  56. package/build/site-tagline/block.json +4 -6
  57. package/build/site-tagline/deprecated.cjs +1 -66
  58. package/build/site-tagline/deprecated.cjs.map +3 -3
  59. package/build/site-tagline/edit.cjs +28 -14
  60. package/build/site-tagline/edit.cjs.map +3 -3
  61. package/build/site-title/block.json +3 -1
  62. package/build/site-title/deprecated.cjs +1 -79
  63. package/build/site-title/deprecated.cjs.map +3 -3
  64. package/build/site-title/edit.cjs +30 -14
  65. package/build/site-title/edit.cjs.map +3 -3
  66. package/build/tabs-menu-item/block.json +26 -1
  67. package/build/tabs-menu-item/controls.cjs +100 -2
  68. package/build/tabs-menu-item/controls.cjs.map +3 -3
  69. package/build/tabs-menu-item/edit.cjs +65 -6
  70. package/build/tabs-menu-item/edit.cjs.map +2 -2
  71. package/build/tabs-menu-item/save.cjs +15 -1
  72. package/build/tabs-menu-item/save.cjs.map +2 -2
  73. package/build-module/comment-reply-link/edit.mjs +3 -2
  74. package/build-module/comment-reply-link/edit.mjs.map +2 -2
  75. package/build-module/comments/edit/placeholder.mjs +3 -2
  76. package/build-module/comments/edit/placeholder.mjs.map +2 -2
  77. package/build-module/cover/edit/index.mjs +47 -29
  78. package/build-module/cover/edit/index.mjs.map +2 -2
  79. package/build-module/cover/embed-video-utils.mjs +7 -5
  80. package/build-module/cover/embed-video-utils.mjs.map +2 -2
  81. package/build-module/embed/embed-preview.mjs +2 -1
  82. package/build-module/embed/embed-preview.mjs.map +2 -2
  83. package/build-module/html/block.json +2 -1
  84. package/build-module/html/modal.mjs +149 -232
  85. package/build-module/html/modal.mjs.map +2 -2
  86. package/build-module/icon/block.json +3 -12
  87. package/build-module/image/image.mjs +1 -1
  88. package/build-module/image/image.mjs.map +2 -2
  89. package/build-module/latest-comments/deprecated.mjs +33 -0
  90. package/build-module/latest-comments/deprecated.mjs.map +2 -2
  91. package/build-module/navigation/edit/index.mjs +123 -119
  92. package/build-module/navigation/edit/index.mjs.map +2 -2
  93. package/build-module/navigation/edit/navigation-menu-selector.mjs +2 -1
  94. package/build-module/navigation/edit/navigation-menu-selector.mjs.map +2 -2
  95. package/build-module/navigation/view.mjs +9 -2
  96. package/build-module/navigation/view.mjs.map +2 -2
  97. package/build-module/navigation-link/edit.mjs +2 -1
  98. package/build-module/navigation-link/edit.mjs.map +2 -2
  99. package/build-module/navigation-link/shared/controls.mjs +29 -53
  100. package/build-module/navigation-link/shared/controls.mjs.map +2 -2
  101. package/build-module/navigation-link/shared/use-handle-link-change.mjs +19 -3
  102. package/build-module/navigation-link/shared/use-handle-link-change.mjs.map +2 -2
  103. package/build-module/navigation-link/shared/use-link-preview.mjs +8 -9
  104. package/build-module/navigation-link/shared/use-link-preview.mjs.map +2 -2
  105. package/build-module/navigation-submenu/edit.mjs +9 -23
  106. package/build-module/navigation-submenu/edit.mjs.map +2 -2
  107. package/build-module/nextpage/block.json +0 -1
  108. package/build-module/page-list-item/edit.mjs +6 -3
  109. package/build-module/page-list-item/edit.mjs.map +2 -2
  110. package/build-module/paragraph/edit.mjs +2 -2
  111. package/build-module/paragraph/edit.mjs.map +1 -1
  112. package/build-module/post-navigation-link/block.json +3 -1
  113. package/build-module/post-navigation-link/edit.mjs +30 -3
  114. package/build-module/post-navigation-link/edit.mjs.map +2 -2
  115. package/build-module/post-navigation-link/index.mjs +0 -2
  116. package/build-module/post-navigation-link/index.mjs.map +2 -2
  117. package/build-module/post-title/block.json +3 -1
  118. package/build-module/post-title/deprecated.mjs +1 -82
  119. package/build-module/post-title/deprecated.mjs.map +2 -2
  120. package/build-module/post-title/edit.mjs +27 -10
  121. package/build-module/post-title/edit.mjs.map +2 -2
  122. package/build-module/query-title/block.json +3 -1
  123. package/build-module/query-title/deprecated.mjs +1 -70
  124. package/build-module/query-title/deprecated.mjs.map +2 -2
  125. package/build-module/query-title/edit.mjs +36 -17
  126. package/build-module/query-title/edit.mjs.map +2 -2
  127. package/build-module/shortcode/block.json +2 -1
  128. package/build-module/site-tagline/block.json +4 -6
  129. package/build-module/site-tagline/deprecated.mjs +1 -66
  130. package/build-module/site-tagline/deprecated.mjs.map +2 -2
  131. package/build-module/site-tagline/edit.mjs +29 -14
  132. package/build-module/site-tagline/edit.mjs.map +2 -2
  133. package/build-module/site-title/block.json +3 -1
  134. package/build-module/site-title/deprecated.mjs +1 -79
  135. package/build-module/site-title/deprecated.mjs.map +2 -2
  136. package/build-module/site-title/edit.mjs +31 -14
  137. package/build-module/site-title/edit.mjs.map +2 -2
  138. package/build-module/tabs-menu-item/block.json +26 -1
  139. package/build-module/tabs-menu-item/controls.mjs +104 -3
  140. package/build-module/tabs-menu-item/controls.mjs.map +2 -2
  141. package/build-module/tabs-menu-item/edit.mjs +66 -6
  142. package/build-module/tabs-menu-item/edit.mjs.map +2 -2
  143. package/build-module/tabs-menu-item/save.mjs +15 -1
  144. package/build-module/tabs-menu-item/save.mjs.map +2 -2
  145. package/build-style/editor-rtl.css +30 -6
  146. package/build-style/editor.css +30 -6
  147. package/build-style/html/editor-rtl.css +10 -6
  148. package/build-style/html/editor.css +10 -6
  149. package/build-style/icon/editor-rtl.css +5 -0
  150. package/build-style/icon/editor.css +5 -0
  151. package/build-style/navigation/style-rtl.css +15 -1
  152. package/build-style/navigation/style.css +15 -1
  153. package/build-style/navigation-link/editor-rtl.css +10 -0
  154. package/build-style/navigation-link/editor.css +10 -0
  155. package/build-style/navigation-overlay-close/style-rtl.css +3 -3
  156. package/build-style/navigation-overlay-close/style.css +3 -3
  157. package/build-style/style-rtl.css +30 -7
  158. package/build-style/style.css +30 -7
  159. package/build-style/tabs-menu-item/editor-rtl.css +5 -0
  160. package/build-style/tabs-menu-item/editor.css +5 -0
  161. package/build-style/tabs-menu-item/style-rtl.css +12 -3
  162. package/build-style/tabs-menu-item/style.css +12 -3
  163. package/package.json +38 -38
  164. package/src/accordion-item/index.php +17 -5
  165. package/src/comment-reply-link/edit.js +5 -2
  166. package/src/comments/edit/placeholder.js +5 -2
  167. package/src/cover/edit/index.js +72 -35
  168. package/src/cover/embed-video-utils.js +9 -7
  169. package/src/cover/index.php +8 -0
  170. package/src/details/index.php +47 -0
  171. package/src/embed/embed-preview.js +6 -5
  172. package/src/html/block.json +2 -1
  173. package/src/html/editor.scss +15 -5
  174. package/src/html/modal.js +32 -99
  175. package/src/icon/block.json +3 -12
  176. package/src/icon/editor.scss +5 -0
  177. package/src/icon/index.php +3 -1
  178. package/src/image/image.js +14 -15
  179. package/src/image/index.php +7 -5
  180. package/src/latest-comments/deprecated.js +33 -0
  181. package/src/navigation/edit/index.js +134 -130
  182. package/src/navigation/edit/navigation-menu-selector.js +2 -1
  183. package/src/navigation/index.php +62 -9
  184. package/src/navigation/style.scss +17 -1
  185. package/src/navigation/view.js +14 -2
  186. package/src/navigation-link/edit.js +1 -0
  187. package/src/navigation-link/editor.scss +18 -0
  188. package/src/navigation-link/shared/controls.js +35 -62
  189. package/src/navigation-link/shared/test/controls.js +5 -5
  190. package/src/navigation-link/shared/test/use-handle-link-change.test.js +212 -0
  191. package/src/navigation-link/shared/test/use-link-preview.test.js +19 -1
  192. package/src/navigation-link/shared/use-handle-link-change.js +36 -9
  193. package/src/navigation-link/shared/use-link-preview.js +14 -15
  194. package/src/navigation-overlay-close/style.scss +3 -3
  195. package/src/navigation-submenu/edit.js +11 -28
  196. package/src/nextpage/block.json +0 -1
  197. package/src/page-list-item/edit.js +8 -7
  198. package/src/paragraph/edit.js +2 -2
  199. package/src/post-featured-image/index.php +4 -2
  200. package/src/post-navigation-link/block.json +3 -1
  201. package/src/post-navigation-link/edit.js +35 -2
  202. package/src/post-navigation-link/index.js +0 -2
  203. package/src/post-title/block.json +3 -1
  204. package/src/post-title/deprecated.js +1 -86
  205. package/src/post-title/edit.js +18 -2
  206. package/src/query-title/block.json +3 -1
  207. package/src/query-title/deprecated.js +1 -74
  208. package/src/query-title/edit.js +27 -11
  209. package/src/shortcode/block.json +2 -1
  210. package/src/site-tagline/block.json +4 -6
  211. package/src/site-tagline/deprecated.js +1 -70
  212. package/src/site-tagline/edit.js +22 -9
  213. package/src/site-title/block.json +3 -1
  214. package/src/site-title/deprecated.js +1 -83
  215. package/src/site-title/edit.js +22 -9
  216. package/src/tabs-menu-item/block.json +26 -1
  217. package/src/tabs-menu-item/controls.js +108 -0
  218. package/src/tabs-menu-item/edit.js +79 -6
  219. package/src/tabs-menu-item/editor.scss +6 -0
  220. package/src/tabs-menu-item/save.js +26 -1
  221. package/src/tabs-menu-item/style.scss +14 -3
  222. package/build/post-navigation-link/deprecated.cjs +0 -100
  223. package/build/post-navigation-link/deprecated.cjs.map +0 -7
  224. package/build-module/post-navigation-link/deprecated.mjs +0 -69
  225. package/build-module/post-navigation-link/deprecated.mjs.map +0 -7
  226. package/src/post-navigation-link/deprecated.js +0 -72
@@ -8,11 +8,12 @@ import {
8
8
  Flex,
9
9
  Notice,
10
10
  privateApis as componentsPrivateApis,
11
- __experimentalHStack as HStack,
12
- __experimentalGrid as Grid
11
+ __experimentalVStack as VStack,
12
+ __experimentalHStack as HStack
13
13
  } from "@wordpress/components";
14
14
  import { PlainText, store as blockEditorStore } from "@wordpress/block-editor";
15
15
  import { fullscreen, square } from "@wordpress/icons";
16
+ import { useViewportMatch } from "@wordpress/compose";
16
17
  import { unlock } from "../lock-unlock.mjs";
17
18
  import Preview from "./preview.mjs";
18
19
  import { parseContent, serializeContent } from "./utils.mjs";
@@ -28,9 +29,8 @@ function HTMLEditModal({
28
29
  const [editedHtml, setEditedHtml] = useState(html);
29
30
  const [editedCss, setEditedCss] = useState(css);
30
31
  const [editedJs, setEditedJs] = useState(js);
31
- const [isDirty, setIsDirty] = useState(false);
32
- const [showUnsavedWarning, setShowUnsavedWarning] = useState(false);
33
32
  const [isFullscreen, setIsFullscreen] = useState(false);
33
+ const isMobileViewport = useViewportMatch("small", "<");
34
34
  const { canUserUseUnfilteredHTML } = useSelect((select) => {
35
35
  const settings = select(blockEditorStore).getSettings();
36
36
  return {
@@ -41,18 +41,6 @@ function HTMLEditModal({
41
41
  if (!isOpen) {
42
42
  return null;
43
43
  }
44
- const handleHtmlChange = (value) => {
45
- setEditedHtml(value);
46
- setIsDirty(true);
47
- };
48
- const handleCssChange = (value) => {
49
- setEditedCss(value);
50
- setIsDirty(true);
51
- };
52
- const handleJsChange = (value) => {
53
- setEditedJs(value);
54
- setIsDirty(true);
55
- };
56
44
  const handleUpdate = () => {
57
45
  setAttributes({
58
46
  content: serializeContent({
@@ -61,25 +49,6 @@ function HTMLEditModal({
61
49
  js: canUserUseUnfilteredHTML ? editedJs : ""
62
50
  })
63
51
  });
64
- setIsDirty(false);
65
- };
66
- const handleCancel = () => {
67
- setIsDirty(false);
68
- onRequestClose();
69
- };
70
- const handleRequestClose = () => {
71
- if (isDirty) {
72
- setShowUnsavedWarning(true);
73
- } else {
74
- onRequestClose();
75
- }
76
- };
77
- const handleDiscardChanges = () => {
78
- setShowUnsavedWarning(false);
79
- onRequestClose();
80
- };
81
- const handleContinueEditing = () => {
82
- setShowUnsavedWarning(false);
83
52
  };
84
53
  const handleUpdateAndClose = () => {
85
54
  handleUpdate();
@@ -88,218 +57,166 @@ function HTMLEditModal({
88
57
  const toggleFullscreen = () => {
89
58
  setIsFullscreen((prevState) => !prevState);
90
59
  };
91
- return /* @__PURE__ */ jsxs(Fragment, { children: [
92
- /* @__PURE__ */ jsx(
93
- Modal,
94
- {
95
- title: __("Edit HTML"),
96
- onRequestClose: handleRequestClose,
97
- className: "block-library-html__modal",
98
- size: "large",
99
- isDismissible: false,
100
- shouldCloseOnClickOutside: !isDirty,
101
- shouldCloseOnEsc: !isDirty,
102
- isFullScreen: isFullscreen,
103
- __experimentalHideHeader: true,
104
- children: /* @__PURE__ */ jsx(Tabs, { orientation: "horizontal", defaultTabId: "html", children: /* @__PURE__ */ jsxs(
105
- Grid,
60
+ return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(
61
+ Modal,
62
+ {
63
+ title: __("Edit HTML"),
64
+ onRequestClose,
65
+ className: "block-library-html__modal",
66
+ size: "large",
67
+ isDismissible: false,
68
+ shouldCloseOnClickOutside: false,
69
+ isFullScreen: isFullscreen,
70
+ __experimentalHideHeader: true,
71
+ children: /* @__PURE__ */ jsx(Tabs, { orientation: "horizontal", defaultTabId: "html", children: /* @__PURE__ */ jsxs(VStack, { expanded: true, children: [
72
+ /* @__PURE__ */ jsxs(
73
+ HStack,
106
74
  {
107
- columns: 1,
108
- templateRows: "auto 1fr auto",
109
- gap: 4,
110
- style: { height: "100%" },
75
+ justify: "space-between",
76
+ className: "block-library-html__modal-header",
111
77
  children: [
112
- /* @__PURE__ */ jsxs(
113
- HStack,
78
+ /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsxs(Tabs.TabList, { children: [
79
+ /* @__PURE__ */ jsx(Tabs.Tab, { tabId: "html", children: "HTML" }),
80
+ canUserUseUnfilteredHTML && /* @__PURE__ */ jsx(Tabs.Tab, { tabId: "css", children: "CSS" }),
81
+ canUserUseUnfilteredHTML && /* @__PURE__ */ jsx(Tabs.Tab, { tabId: "js", children: __("JavaScript") })
82
+ ] }) }),
83
+ !isMobileViewport && /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(
84
+ Button,
114
85
  {
115
- justify: "space-between",
116
- className: "block-library-html__modal-header",
117
- children: [
118
- /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsxs(Tabs.TabList, { children: [
119
- /* @__PURE__ */ jsx(Tabs.Tab, { tabId: "html", children: "HTML" }),
120
- canUserUseUnfilteredHTML && /* @__PURE__ */ jsx(Tabs.Tab, { tabId: "css", children: "CSS" }),
121
- canUserUseUnfilteredHTML && /* @__PURE__ */ jsx(Tabs.Tab, { tabId: "js", children: __("JavaScript") })
122
- ] }) }),
123
- /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(
124
- Button,
125
- {
126
- __next40pxDefaultSize: true,
127
- icon: isFullscreen ? square : fullscreen,
128
- label: __("Enable/disable fullscreen"),
129
- onClick: toggleFullscreen,
130
- variant: "tertiary"
131
- }
132
- ) })
133
- ]
86
+ __next40pxDefaultSize: true,
87
+ icon: isFullscreen ? square : fullscreen,
88
+ label: __(
89
+ "Enable/disable fullscreen"
90
+ ),
91
+ onClick: toggleFullscreen,
92
+ variant: "tertiary"
134
93
  }
135
- ),
136
- hasRestrictedContent && /* @__PURE__ */ jsx(
137
- Notice,
138
- {
139
- status: "warning",
140
- isDismissible: false,
141
- className: "block-library-html__modal-notice",
142
- children: __(
143
- "This block contains CSS or JavaScript that will be removed when you save because you do not have permission to use unfiltered HTML."
144
- )
145
- }
146
- ),
147
- /* @__PURE__ */ jsxs(
148
- HStack,
149
- {
150
- alignment: "stretch",
151
- justify: "flex-start",
152
- spacing: 4,
153
- className: "block-library-html__modal-tabs",
154
- children: [
155
- /* @__PURE__ */ jsxs("div", { className: "block-library-html__modal-content", children: [
156
- /* @__PURE__ */ jsx(
157
- Tabs.TabPanel,
158
- {
159
- tabId: "html",
160
- focusable: false,
161
- className: "block-library-html__modal-tab",
162
- children: /* @__PURE__ */ jsx(
163
- PlainText,
164
- {
165
- value: editedHtml,
166
- onChange: handleHtmlChange,
167
- placeholder: __("Write HTML\u2026"),
168
- "aria-label": __("HTML"),
169
- className: "block-library-html__modal-editor"
170
- }
171
- )
172
- }
173
- ),
174
- canUserUseUnfilteredHTML && /* @__PURE__ */ jsx(
175
- Tabs.TabPanel,
176
- {
177
- tabId: "css",
178
- focusable: false,
179
- className: "block-library-html__modal-tab",
180
- children: /* @__PURE__ */ jsx(
181
- PlainText,
182
- {
183
- value: editedCss,
184
- onChange: handleCssChange,
185
- placeholder: __("Write CSS\u2026"),
186
- "aria-label": __("CSS"),
187
- className: "block-library-html__modal-editor"
188
- }
189
- )
190
- }
191
- ),
192
- canUserUseUnfilteredHTML && /* @__PURE__ */ jsx(
193
- Tabs.TabPanel,
194
- {
195
- tabId: "js",
196
- focusable: false,
197
- className: "block-library-html__modal-tab",
198
- children: /* @__PURE__ */ jsx(
199
- PlainText,
200
- {
201
- value: editedJs,
202
- onChange: handleJsChange,
203
- placeholder: __(
204
- "Write JavaScript\u2026"
205
- ),
206
- "aria-label": __("JavaScript"),
207
- className: "block-library-html__modal-editor"
208
- }
209
- )
210
- }
211
- )
212
- ] }),
213
- /* @__PURE__ */ jsx("div", { className: "block-library-html__preview", children: /* @__PURE__ */ jsx(
214
- Preview,
94
+ ) })
95
+ ]
96
+ }
97
+ ),
98
+ hasRestrictedContent && /* @__PURE__ */ jsx(
99
+ Notice,
100
+ {
101
+ status: "warning",
102
+ isDismissible: false,
103
+ className: "block-library-html__modal-notice",
104
+ children: __(
105
+ "This block contains CSS or JavaScript that will be removed when you save because you do not have permission to use unfiltered HTML."
106
+ )
107
+ }
108
+ ),
109
+ /* @__PURE__ */ jsxs(
110
+ Flex,
111
+ {
112
+ direction: isMobileViewport ? "column" : "row",
113
+ className: "block-library-html__modal-tabs",
114
+ align: "stretch",
115
+ gap: 8,
116
+ children: [
117
+ /* @__PURE__ */ jsxs("div", { className: "block-library-html__modal-content", children: [
118
+ /* @__PURE__ */ jsx(
119
+ Tabs.TabPanel,
120
+ {
121
+ tabId: "html",
122
+ focusable: false,
123
+ className: "block-library-html__modal-tab",
124
+ children: /* @__PURE__ */ jsx(
125
+ PlainText,
215
126
  {
216
- content: serializeContent({
217
- html: editedHtml,
218
- css: editedCss,
219
- js: editedJs
220
- })
127
+ value: editedHtml,
128
+ onChange: setEditedHtml,
129
+ placeholder: __("Write HTML\u2026"),
130
+ "aria-label": __("HTML"),
131
+ className: "block-library-html__modal-editor"
221
132
  }
222
- ) })
223
- ]
224
- }
225
- ),
226
- /* @__PURE__ */ jsxs(
227
- HStack,
228
- {
229
- alignment: "center",
230
- justify: "flex-end",
231
- spacing: 4,
232
- className: "block-library-html__modal-footer",
233
- children: [
234
- /* @__PURE__ */ jsx(
235
- Button,
133
+ )
134
+ }
135
+ ),
136
+ canUserUseUnfilteredHTML && /* @__PURE__ */ jsx(
137
+ Tabs.TabPanel,
138
+ {
139
+ tabId: "css",
140
+ focusable: false,
141
+ className: "block-library-html__modal-tab",
142
+ children: /* @__PURE__ */ jsx(
143
+ PlainText,
236
144
  {
237
- __next40pxDefaultSize: true,
238
- variant: "tertiary",
239
- onClick: handleCancel,
240
- children: __("Cancel")
145
+ value: editedCss,
146
+ onChange: setEditedCss,
147
+ placeholder: __("Write CSS\u2026"),
148
+ "aria-label": __("CSS"),
149
+ className: "block-library-html__modal-editor"
241
150
  }
242
- ),
243
- /* @__PURE__ */ jsx(
244
- Button,
151
+ )
152
+ }
153
+ ),
154
+ canUserUseUnfilteredHTML && /* @__PURE__ */ jsx(
155
+ Tabs.TabPanel,
156
+ {
157
+ tabId: "js",
158
+ focusable: false,
159
+ className: "block-library-html__modal-tab",
160
+ children: /* @__PURE__ */ jsx(
161
+ PlainText,
245
162
  {
246
- __next40pxDefaultSize: true,
247
- variant: "primary",
248
- onClick: handleUpdateAndClose,
249
- children: __("Update")
163
+ value: editedJs,
164
+ onChange: setEditedJs,
165
+ placeholder: __(
166
+ "Write JavaScript\u2026"
167
+ ),
168
+ "aria-label": __("JavaScript"),
169
+ className: "block-library-html__modal-editor"
250
170
  }
251
171
  )
252
- ]
172
+ }
173
+ )
174
+ ] }),
175
+ /* @__PURE__ */ jsx("div", { className: "block-library-html__preview", children: /* @__PURE__ */ jsx(
176
+ Preview,
177
+ {
178
+ content: serializeContent({
179
+ html: editedHtml,
180
+ css: editedCss,
181
+ js: editedJs
182
+ })
183
+ }
184
+ ) })
185
+ ]
186
+ }
187
+ ),
188
+ /* @__PURE__ */ jsxs(
189
+ HStack,
190
+ {
191
+ alignment: "center",
192
+ justify: "flex-end",
193
+ spacing: 4,
194
+ className: "block-library-html__modal-footer",
195
+ children: [
196
+ /* @__PURE__ */ jsx(
197
+ Button,
198
+ {
199
+ __next40pxDefaultSize: true,
200
+ variant: "tertiary",
201
+ onClick: onRequestClose,
202
+ children: __("Cancel")
203
+ }
204
+ ),
205
+ /* @__PURE__ */ jsx(
206
+ Button,
207
+ {
208
+ __next40pxDefaultSize: true,
209
+ variant: "primary",
210
+ onClick: handleUpdateAndClose,
211
+ children: __("Update")
253
212
  }
254
213
  )
255
214
  ]
256
215
  }
257
- ) })
258
- }
259
- ),
260
- showUnsavedWarning && /* @__PURE__ */ jsxs(
261
- Modal,
262
- {
263
- title: __("Unsaved changes"),
264
- onRequestClose: handleContinueEditing,
265
- size: "medium",
266
- children: [
267
- /* @__PURE__ */ jsx("p", { children: __(
268
- "You have unsaved changes. What would you like to do?"
269
- ) }),
270
- /* @__PURE__ */ jsxs(Flex, { direction: "row", justify: "flex-end", gap: 2, children: [
271
- /* @__PURE__ */ jsx(
272
- Button,
273
- {
274
- __next40pxDefaultSize: true,
275
- variant: "secondary",
276
- onClick: handleDiscardChanges,
277
- children: __("Discard unsaved changes")
278
- }
279
- ),
280
- /* @__PURE__ */ jsx(
281
- Button,
282
- {
283
- __next40pxDefaultSize: true,
284
- variant: "secondary",
285
- onClick: handleContinueEditing,
286
- children: __("Continue editing")
287
- }
288
- ),
289
- /* @__PURE__ */ jsx(
290
- Button,
291
- {
292
- __next40pxDefaultSize: true,
293
- variant: "primary",
294
- onClick: handleUpdateAndClose,
295
- children: __("Update and close")
296
- }
297
- )
298
- ] })
299
- ]
300
- }
301
- )
302
- ] });
216
+ )
217
+ ] }) })
218
+ }
219
+ ) });
303
220
  }
304
221
  export {
305
222
  HTMLEditModal as default
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/html/modal.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport {\n\tModal,\n\tButton,\n\tFlex,\n\tNotice,\n\tprivateApis as componentsPrivateApis,\n\t__experimentalHStack as HStack,\n\t__experimentalGrid as Grid,\n} from '@wordpress/components';\nimport { PlainText, store as blockEditorStore } from '@wordpress/block-editor';\nimport { fullscreen, square } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\nimport Preview from './preview';\nimport { parseContent, serializeContent } from './utils';\n\nconst { Tabs } = unlock( componentsPrivateApis );\n\nexport default function HTMLEditModal( {\n\tisOpen,\n\tonRequestClose,\n\tcontent,\n\tsetAttributes,\n} ) {\n\t// Parse content into separate sections and use as initial state\n\tconst { html, css, js } = parseContent( content );\n\tconst [ editedHtml, setEditedHtml ] = useState( html );\n\tconst [ editedCss, setEditedCss ] = useState( css );\n\tconst [ editedJs, setEditedJs ] = useState( js );\n\tconst [ isDirty, setIsDirty ] = useState( false );\n\tconst [ showUnsavedWarning, setShowUnsavedWarning ] = useState( false );\n\tconst [ isFullscreen, setIsFullscreen ] = useState( false );\n\n\t// Check if user has permission to save scripts and get editor styles\n\tconst { canUserUseUnfilteredHTML } = useSelect( ( select ) => {\n\t\tconst settings = select( blockEditorStore ).getSettings();\n\t\treturn {\n\t\t\tcanUserUseUnfilteredHTML:\n\t\t\t\tsettings.__experimentalCanUserUseUnfilteredHTML,\n\t\t};\n\t}, [] );\n\n\t// Determine if we should show a warning about CSS/JS content being stripped\n\tconst hasRestrictedContent =\n\t\t! canUserUseUnfilteredHTML && ( css.trim() || js.trim() );\n\n\tif ( ! isOpen ) {\n\t\treturn null;\n\t}\n\n\tconst handleHtmlChange = ( value ) => {\n\t\tsetEditedHtml( value );\n\t\tsetIsDirty( true );\n\t};\n\tconst handleCssChange = ( value ) => {\n\t\tsetEditedCss( value );\n\t\tsetIsDirty( true );\n\t};\n\tconst handleJsChange = ( value ) => {\n\t\tsetEditedJs( value );\n\t\tsetIsDirty( true );\n\t};\n\tconst handleUpdate = () => {\n\t\t// For users without unfiltered_html capability, strip CSS and JS content\n\t\t// to prevent kses from leaving broken content\n\t\tsetAttributes( {\n\t\t\tcontent: serializeContent( {\n\t\t\t\thtml: editedHtml,\n\t\t\t\tcss: canUserUseUnfilteredHTML ? editedCss : '',\n\t\t\t\tjs: canUserUseUnfilteredHTML ? editedJs : '',\n\t\t\t} ),\n\t\t} );\n\t\tsetIsDirty( false );\n\t};\n\tconst handleCancel = () => {\n\t\tsetIsDirty( false );\n\t\tonRequestClose();\n\t};\n\tconst handleRequestClose = () => {\n\t\tif ( isDirty ) {\n\t\t\tsetShowUnsavedWarning( true );\n\t\t} else {\n\t\t\tonRequestClose();\n\t\t}\n\t};\n\tconst handleDiscardChanges = () => {\n\t\tsetShowUnsavedWarning( false );\n\t\tonRequestClose();\n\t};\n\tconst handleContinueEditing = () => {\n\t\tsetShowUnsavedWarning( false );\n\t};\n\tconst handleUpdateAndClose = () => {\n\t\thandleUpdate();\n\t\tonRequestClose();\n\t};\n\tconst toggleFullscreen = () => {\n\t\tsetIsFullscreen( ( prevState ) => ! prevState );\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<Modal\n\t\t\t\ttitle={ __( 'Edit HTML' ) }\n\t\t\t\tonRequestClose={ handleRequestClose }\n\t\t\t\tclassName=\"block-library-html__modal\"\n\t\t\t\tsize=\"large\"\n\t\t\t\tisDismissible={ false }\n\t\t\t\tshouldCloseOnClickOutside={ ! isDirty }\n\t\t\t\tshouldCloseOnEsc={ ! isDirty }\n\t\t\t\tisFullScreen={ isFullscreen }\n\t\t\t\t__experimentalHideHeader\n\t\t\t>\n\t\t\t\t<Tabs orientation=\"horizontal\" defaultTabId=\"html\">\n\t\t\t\t\t<Grid\n\t\t\t\t\t\tcolumns={ 1 }\n\t\t\t\t\t\ttemplateRows=\"auto 1fr auto\"\n\t\t\t\t\t\tgap={ 4 }\n\t\t\t\t\t\tstyle={ { height: '100%' } }\n\t\t\t\t\t>\n\t\t\t\t\t\t<HStack\n\t\t\t\t\t\t\tjustify=\"space-between\"\n\t\t\t\t\t\t\tclassName=\"block-library-html__modal-header\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t<Tabs.TabList>\n\t\t\t\t\t\t\t\t\t<Tabs.Tab tabId=\"html\">HTML</Tabs.Tab>\n\t\t\t\t\t\t\t\t\t{ canUserUseUnfilteredHTML && (\n\t\t\t\t\t\t\t\t\t\t<Tabs.Tab tabId=\"css\">CSS</Tabs.Tab>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ canUserUseUnfilteredHTML && (\n\t\t\t\t\t\t\t\t\t\t<Tabs.Tab tabId=\"js\">\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'JavaScript' ) }\n\t\t\t\t\t\t\t\t\t\t</Tabs.Tab>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</Tabs.TabList>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\ticon={ isFullscreen ? square : fullscreen }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Enable/disable fullscreen' ) }\n\t\t\t\t\t\t\t\t\tonClick={ toggleFullscreen }\n\t\t\t\t\t\t\t\t\tvariant=\"tertiary\"\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</HStack>\n\t\t\t\t\t\t{ hasRestrictedContent && (\n\t\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\t\tstatus=\"warning\"\n\t\t\t\t\t\t\t\tisDismissible={ false }\n\t\t\t\t\t\t\t\tclassName=\"block-library-html__modal-notice\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t'This block contains CSS or JavaScript that will be removed when you save because you do not have permission to use unfiltered HTML.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</Notice>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<HStack\n\t\t\t\t\t\t\talignment=\"stretch\"\n\t\t\t\t\t\t\tjustify=\"flex-start\"\n\t\t\t\t\t\t\tspacing={ 4 }\n\t\t\t\t\t\t\tclassName=\"block-library-html__modal-tabs\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div className=\"block-library-html__modal-content\">\n\t\t\t\t\t\t\t\t<Tabs.TabPanel\n\t\t\t\t\t\t\t\t\ttabId=\"html\"\n\t\t\t\t\t\t\t\t\tfocusable={ false }\n\t\t\t\t\t\t\t\t\tclassName=\"block-library-html__modal-tab\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<PlainText\n\t\t\t\t\t\t\t\t\t\tvalue={ editedHtml }\n\t\t\t\t\t\t\t\t\t\tonChange={ handleHtmlChange }\n\t\t\t\t\t\t\t\t\t\tplaceholder={ __( 'Write HTML\u2026' ) }\n\t\t\t\t\t\t\t\t\t\taria-label={ __( 'HTML' ) }\n\t\t\t\t\t\t\t\t\t\tclassName=\"block-library-html__modal-editor\"\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</Tabs.TabPanel>\n\t\t\t\t\t\t\t\t{ canUserUseUnfilteredHTML && (\n\t\t\t\t\t\t\t\t\t<Tabs.TabPanel\n\t\t\t\t\t\t\t\t\t\ttabId=\"css\"\n\t\t\t\t\t\t\t\t\t\tfocusable={ false }\n\t\t\t\t\t\t\t\t\t\tclassName=\"block-library-html__modal-tab\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<PlainText\n\t\t\t\t\t\t\t\t\t\t\tvalue={ editedCss }\n\t\t\t\t\t\t\t\t\t\t\tonChange={ handleCssChange }\n\t\t\t\t\t\t\t\t\t\t\tplaceholder={ __( 'Write CSS\u2026' ) }\n\t\t\t\t\t\t\t\t\t\t\taria-label={ __( 'CSS' ) }\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"block-library-html__modal-editor\"\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</Tabs.TabPanel>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ canUserUseUnfilteredHTML && (\n\t\t\t\t\t\t\t\t\t<Tabs.TabPanel\n\t\t\t\t\t\t\t\t\t\ttabId=\"js\"\n\t\t\t\t\t\t\t\t\t\tfocusable={ false }\n\t\t\t\t\t\t\t\t\t\tclassName=\"block-library-html__modal-tab\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<PlainText\n\t\t\t\t\t\t\t\t\t\t\tvalue={ editedJs }\n\t\t\t\t\t\t\t\t\t\t\tonChange={ handleJsChange }\n\t\t\t\t\t\t\t\t\t\t\tplaceholder={ __(\n\t\t\t\t\t\t\t\t\t\t\t\t'Write JavaScript\u2026'\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\taria-label={ __( 'JavaScript' ) }\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"block-library-html__modal-editor\"\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</Tabs.TabPanel>\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\t<div className=\"block-library-html__preview\">\n\t\t\t\t\t\t\t\t<Preview\n\t\t\t\t\t\t\t\t\tcontent={ serializeContent( {\n\t\t\t\t\t\t\t\t\t\thtml: editedHtml,\n\t\t\t\t\t\t\t\t\t\tcss: editedCss,\n\t\t\t\t\t\t\t\t\t\tjs: editedJs,\n\t\t\t\t\t\t\t\t\t} ) }\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</HStack>\n\t\t\t\t\t\t<HStack\n\t\t\t\t\t\t\talignment=\"center\"\n\t\t\t\t\t\t\tjustify=\"flex-end\"\n\t\t\t\t\t\t\tspacing={ 4 }\n\t\t\t\t\t\t\tclassName=\"block-library-html__modal-footer\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\tonClick={ handleCancel }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\tonClick={ handleUpdateAndClose }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Update' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</HStack>\n\t\t\t\t\t</Grid>\n\t\t\t\t</Tabs>\n\t\t\t</Modal>\n\n\t\t\t{ showUnsavedWarning && (\n\t\t\t\t<Modal\n\t\t\t\t\ttitle={ __( 'Unsaved changes' ) }\n\t\t\t\t\tonRequestClose={ handleContinueEditing }\n\t\t\t\t\tsize=\"medium\"\n\t\t\t\t>\n\t\t\t\t\t<p>\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'You have unsaved changes. What would you like to do?'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</p>\n\t\t\t\t\t<Flex direction=\"row\" justify=\"flex-end\" gap={ 2 }>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\tonClick={ handleDiscardChanges }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Discard unsaved changes' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\tonClick={ handleContinueEditing }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Continue editing' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\tonClick={ handleUpdateAndClose }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Update and close' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</Flex>\n\t\t\t\t</Modal>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport {\n\tModal,\n\tButton,\n\tFlex,\n\tNotice,\n\tprivateApis as componentsPrivateApis,\n\t__experimentalVStack as VStack,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { PlainText, store as blockEditorStore } from '@wordpress/block-editor';\nimport { fullscreen, square } from '@wordpress/icons';\nimport { useViewportMatch } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\nimport Preview from './preview';\nimport { parseContent, serializeContent } from './utils';\n\nconst { Tabs } = unlock( componentsPrivateApis );\n\nexport default function HTMLEditModal( {\n\tisOpen,\n\tonRequestClose,\n\tcontent,\n\tsetAttributes,\n} ) {\n\t// Parse content into separate sections and use as initial state\n\tconst { html, css, js } = parseContent( content );\n\tconst [ editedHtml, setEditedHtml ] = useState( html );\n\tconst [ editedCss, setEditedCss ] = useState( css );\n\tconst [ editedJs, setEditedJs ] = useState( js );\n\tconst [ isFullscreen, setIsFullscreen ] = useState( false );\n\n\tconst isMobileViewport = useViewportMatch( 'small', '<' );\n\n\t// Check if user has permission to save scripts and get editor styles\n\tconst { canUserUseUnfilteredHTML } = useSelect( ( select ) => {\n\t\tconst settings = select( blockEditorStore ).getSettings();\n\t\treturn {\n\t\t\tcanUserUseUnfilteredHTML:\n\t\t\t\tsettings.__experimentalCanUserUseUnfilteredHTML,\n\t\t};\n\t}, [] );\n\n\t// Determine if we should show a warning about CSS/JS content being stripped\n\tconst hasRestrictedContent =\n\t\t! canUserUseUnfilteredHTML && ( css.trim() || js.trim() );\n\n\tif ( ! isOpen ) {\n\t\treturn null;\n\t}\n\n\tconst handleUpdate = () => {\n\t\t// For users without unfiltered_html capability, strip CSS and JS content\n\t\t// to prevent kses from leaving broken content\n\t\tsetAttributes( {\n\t\t\tcontent: serializeContent( {\n\t\t\t\thtml: editedHtml,\n\t\t\t\tcss: canUserUseUnfilteredHTML ? editedCss : '',\n\t\t\t\tjs: canUserUseUnfilteredHTML ? editedJs : '',\n\t\t\t} ),\n\t\t} );\n\t};\n\tconst handleUpdateAndClose = () => {\n\t\thandleUpdate();\n\t\tonRequestClose();\n\t};\n\tconst toggleFullscreen = () => {\n\t\tsetIsFullscreen( ( prevState ) => ! prevState );\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<Modal\n\t\t\t\ttitle={ __( 'Edit HTML' ) }\n\t\t\t\tonRequestClose={ onRequestClose }\n\t\t\t\tclassName=\"block-library-html__modal\"\n\t\t\t\tsize=\"large\"\n\t\t\t\tisDismissible={ false }\n\t\t\t\tshouldCloseOnClickOutside={ false }\n\t\t\t\tisFullScreen={ isFullscreen }\n\t\t\t\t__experimentalHideHeader\n\t\t\t>\n\t\t\t\t<Tabs orientation=\"horizontal\" defaultTabId=\"html\">\n\t\t\t\t\t<VStack expanded>\n\t\t\t\t\t\t<HStack\n\t\t\t\t\t\t\tjustify=\"space-between\"\n\t\t\t\t\t\t\tclassName=\"block-library-html__modal-header\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t<Tabs.TabList>\n\t\t\t\t\t\t\t\t\t<Tabs.Tab tabId=\"html\">HTML</Tabs.Tab>\n\t\t\t\t\t\t\t\t\t{ canUserUseUnfilteredHTML && (\n\t\t\t\t\t\t\t\t\t\t<Tabs.Tab tabId=\"css\">CSS</Tabs.Tab>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ canUserUseUnfilteredHTML && (\n\t\t\t\t\t\t\t\t\t\t<Tabs.Tab tabId=\"js\">\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'JavaScript' ) }\n\t\t\t\t\t\t\t\t\t\t</Tabs.Tab>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</Tabs.TabList>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t{ ! isMobileViewport && (\n\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\tisFullscreen ? square : fullscreen\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tlabel={ __(\n\t\t\t\t\t\t\t\t\t\t\t'Enable/disable fullscreen'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tonClick={ toggleFullscreen }\n\t\t\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t{ hasRestrictedContent && (\n\t\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\t\tstatus=\"warning\"\n\t\t\t\t\t\t\t\tisDismissible={ false }\n\t\t\t\t\t\t\t\tclassName=\"block-library-html__modal-notice\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t'This block contains CSS or JavaScript that will be removed when you save because you do not have permission to use unfiltered HTML.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</Notice>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<Flex\n\t\t\t\t\t\t\tdirection={ isMobileViewport ? 'column' : 'row' }\n\t\t\t\t\t\t\tclassName=\"block-library-html__modal-tabs\"\n\t\t\t\t\t\t\talign=\"stretch\"\n\t\t\t\t\t\t\tgap={ 8 }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div className=\"block-library-html__modal-content\">\n\t\t\t\t\t\t\t\t<Tabs.TabPanel\n\t\t\t\t\t\t\t\t\ttabId=\"html\"\n\t\t\t\t\t\t\t\t\tfocusable={ false }\n\t\t\t\t\t\t\t\t\tclassName=\"block-library-html__modal-tab\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<PlainText\n\t\t\t\t\t\t\t\t\t\tvalue={ editedHtml }\n\t\t\t\t\t\t\t\t\t\tonChange={ setEditedHtml }\n\t\t\t\t\t\t\t\t\t\tplaceholder={ __( 'Write HTML\u2026' ) }\n\t\t\t\t\t\t\t\t\t\taria-label={ __( 'HTML' ) }\n\t\t\t\t\t\t\t\t\t\tclassName=\"block-library-html__modal-editor\"\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</Tabs.TabPanel>\n\t\t\t\t\t\t\t\t{ canUserUseUnfilteredHTML && (\n\t\t\t\t\t\t\t\t\t<Tabs.TabPanel\n\t\t\t\t\t\t\t\t\t\ttabId=\"css\"\n\t\t\t\t\t\t\t\t\t\tfocusable={ false }\n\t\t\t\t\t\t\t\t\t\tclassName=\"block-library-html__modal-tab\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<PlainText\n\t\t\t\t\t\t\t\t\t\t\tvalue={ editedCss }\n\t\t\t\t\t\t\t\t\t\t\tonChange={ setEditedCss }\n\t\t\t\t\t\t\t\t\t\t\tplaceholder={ __( 'Write CSS\u2026' ) }\n\t\t\t\t\t\t\t\t\t\t\taria-label={ __( 'CSS' ) }\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"block-library-html__modal-editor\"\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</Tabs.TabPanel>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ canUserUseUnfilteredHTML && (\n\t\t\t\t\t\t\t\t\t<Tabs.TabPanel\n\t\t\t\t\t\t\t\t\t\ttabId=\"js\"\n\t\t\t\t\t\t\t\t\t\tfocusable={ false }\n\t\t\t\t\t\t\t\t\t\tclassName=\"block-library-html__modal-tab\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<PlainText\n\t\t\t\t\t\t\t\t\t\t\tvalue={ editedJs }\n\t\t\t\t\t\t\t\t\t\t\tonChange={ setEditedJs }\n\t\t\t\t\t\t\t\t\t\t\tplaceholder={ __(\n\t\t\t\t\t\t\t\t\t\t\t\t'Write JavaScript\u2026'\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\taria-label={ __( 'JavaScript' ) }\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"block-library-html__modal-editor\"\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</Tabs.TabPanel>\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\t<div className=\"block-library-html__preview\">\n\t\t\t\t\t\t\t\t<Preview\n\t\t\t\t\t\t\t\t\tcontent={ serializeContent( {\n\t\t\t\t\t\t\t\t\t\thtml: editedHtml,\n\t\t\t\t\t\t\t\t\t\tcss: editedCss,\n\t\t\t\t\t\t\t\t\t\tjs: editedJs,\n\t\t\t\t\t\t\t\t\t} ) }\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</Flex>\n\t\t\t\t\t\t<HStack\n\t\t\t\t\t\t\talignment=\"center\"\n\t\t\t\t\t\t\tjustify=\"flex-end\"\n\t\t\t\t\t\t\tspacing={ 4 }\n\t\t\t\t\t\t\tclassName=\"block-library-html__modal-footer\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\tonClick={ onRequestClose }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\tonClick={ handleUpdateAndClose }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Update' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</HStack>\n\t\t\t\t\t</VStack>\n\t\t\t\t</Tabs>\n\t\t\t</Modal>\n\t\t</>\n\t);\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -59,19 +59,10 @@
59
59
  }
60
60
  },
61
61
  "selectors": {
62
- "root": ".wp-block-icon",
63
- "color": {
64
- "root": ".wp-block-icon svg"
65
- },
66
- "border": {
67
- "root": ".wp-block-icon svg"
68
- },
62
+ "root": ".wp-block-icon svg",
63
+ "css": ".wp-block-icon",
69
64
  "spacing": {
70
- "padding": ".wp-block-icon svg"
71
- },
72
- "dimensions": {
73
- "root": ".wp-block-icon svg",
74
- "width": ".wp-block-icon svg"
65
+ "margin": ".wp-block-icon"
75
66
  }
76
67
  },
77
68
  "style": "wp-block-icon",
@@ -1006,7 +1006,7 @@ function Image({
1006
1006
  type: "snackbar"
1007
1007
  });
1008
1008
  };
1009
- const featuredImageControl = /* @__PURE__ */ jsx(BlockSettingsMenuControls, { children: ({ selectedClientIds }) => selectedClientIds.length === 1 && !isDescendentOfQueryLoop && postId && id && clientId === selectedClientIds[0] && /* @__PURE__ */ jsx(MenuItem, { onClick: setPostFeatureImage, children: __("Set as featured image") }) });
1009
+ const featuredImageControl = !isDescendentOfQueryLoop && postId && id ? /* @__PURE__ */ jsx(BlockSettingsMenuControls, { children: ({ canEdit, selectedClientIds }) => canEdit && selectedClientIds.length === 1 && clientId === selectedClientIds[0] && /* @__PURE__ */ jsx(MenuItem, { onClick: setPostFeatureImage, children: __("Set as featured image") }) }) : null;
1010
1010
  return /* @__PURE__ */ jsxs(Fragment, { children: [
1011
1011
  editMediaButton,
1012
1012
  mediaReplaceFlow,