@wordpress/block-library 9.34.1-next.2f1c7c01b.0 → 9.35.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 (149) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/block/edit.js +2 -2
  3. package/build/block/edit.js.map +2 -2
  4. package/build/block-keyboard-shortcuts/index.js +17 -7
  5. package/build/block-keyboard-shortcuts/index.js.map +2 -2
  6. package/build/cover/deprecated.js +15 -3
  7. package/build/cover/deprecated.js.map +2 -2
  8. package/build/cover/edit/inspector-controls.js +1 -1
  9. package/build/cover/edit/inspector-controls.js.map +2 -2
  10. package/build/cover/transforms.js +10 -2
  11. package/build/cover/transforms.js.map +2 -2
  12. package/build/embed/icons.js +2 -2
  13. package/build/embed/icons.js.map +2 -2
  14. package/build/embed/variations.js +3 -3
  15. package/build/embed/variations.js.map +2 -2
  16. package/build/heading/index.js +3 -1
  17. package/build/heading/index.js.map +3 -3
  18. package/build/heading/transforms.js +10 -3
  19. package/build/heading/transforms.js.map +2 -2
  20. package/build/heading/variations.js +55 -0
  21. package/build/heading/variations.js.map +7 -0
  22. package/build/html/edit.js +54 -44
  23. package/build/html/edit.js.map +3 -3
  24. package/build/html/modal.js +328 -0
  25. package/build/html/modal.js.map +7 -0
  26. package/build/html/utils.js +72 -0
  27. package/build/html/utils.js.map +7 -0
  28. package/build/navigation-link/edit.js +25 -10
  29. package/build/navigation-link/edit.js.map +2 -2
  30. package/build/navigation-link/link-ui/index.js +8 -3
  31. package/build/navigation-link/link-ui/index.js.map +2 -2
  32. package/build/navigation-link/shared/controls.js +42 -7
  33. package/build/navigation-link/shared/controls.js.map +2 -2
  34. package/build/navigation-link/shared/use-entity-binding.js +31 -2
  35. package/build/navigation-link/shared/use-entity-binding.js.map +3 -3
  36. package/build/paragraph/block.json +1 -3
  37. package/build/paragraph/deprecated.js +65 -12
  38. package/build/paragraph/deprecated.js.map +2 -2
  39. package/build/paragraph/edit.js +14 -25
  40. package/build/paragraph/edit.js.map +2 -2
  41. package/build/paragraph/index.js +3 -1
  42. package/build/paragraph/index.js.map +3 -3
  43. package/build/paragraph/save.js +3 -3
  44. package/build/paragraph/save.js.map +2 -2
  45. package/build/paragraph/transforms.js +7 -1
  46. package/build/paragraph/transforms.js.map +2 -2
  47. package/build/paragraph/variations.js +57 -0
  48. package/build/paragraph/variations.js.map +7 -0
  49. package/build-module/block/edit.js +2 -2
  50. package/build-module/block/edit.js.map +2 -2
  51. package/build-module/block-keyboard-shortcuts/index.js +17 -7
  52. package/build-module/block-keyboard-shortcuts/index.js.map +2 -2
  53. package/build-module/cover/deprecated.js +15 -3
  54. package/build-module/cover/deprecated.js.map +2 -2
  55. package/build-module/cover/edit/inspector-controls.js +1 -1
  56. package/build-module/cover/edit/inspector-controls.js.map +2 -2
  57. package/build-module/cover/transforms.js +10 -2
  58. package/build-module/cover/transforms.js.map +2 -2
  59. package/build-module/embed/icons.js +2 -2
  60. package/build-module/embed/icons.js.map +2 -2
  61. package/build-module/embed/variations.js +3 -3
  62. package/build-module/embed/variations.js.map +2 -2
  63. package/build-module/heading/index.js +3 -1
  64. package/build-module/heading/index.js.map +2 -2
  65. package/build-module/heading/transforms.js +10 -3
  66. package/build-module/heading/transforms.js.map +2 -2
  67. package/build-module/heading/variations.js +34 -0
  68. package/build-module/heading/variations.js.map +7 -0
  69. package/build-module/html/edit.js +62 -51
  70. package/build-module/html/edit.js.map +2 -2
  71. package/build-module/html/modal.js +304 -0
  72. package/build-module/html/modal.js.map +7 -0
  73. package/build-module/html/utils.js +46 -0
  74. package/build-module/html/utils.js.map +7 -0
  75. package/build-module/navigation-link/edit.js +25 -10
  76. package/build-module/navigation-link/edit.js.map +2 -2
  77. package/build-module/navigation-link/link-ui/index.js +8 -3
  78. package/build-module/navigation-link/link-ui/index.js.map +2 -2
  79. package/build-module/navigation-link/shared/controls.js +42 -7
  80. package/build-module/navigation-link/shared/controls.js.map +2 -2
  81. package/build-module/navigation-link/shared/use-entity-binding.js +35 -3
  82. package/build-module/navigation-link/shared/use-entity-binding.js.map +2 -2
  83. package/build-module/paragraph/block.json +1 -3
  84. package/build-module/paragraph/deprecated.js +65 -12
  85. package/build-module/paragraph/deprecated.js.map +2 -2
  86. package/build-module/paragraph/edit.js +14 -26
  87. package/build-module/paragraph/edit.js.map +2 -2
  88. package/build-module/paragraph/index.js +3 -1
  89. package/build-module/paragraph/index.js.map +2 -2
  90. package/build-module/paragraph/save.js +3 -3
  91. package/build-module/paragraph/save.js.map +2 -2
  92. package/build-module/paragraph/transforms.js +7 -1
  93. package/build-module/paragraph/transforms.js.map +2 -2
  94. package/build-module/paragraph/variations.js +36 -0
  95. package/build-module/paragraph/variations.js.map +7 -0
  96. package/build-style/accordion-heading/style-rtl.css +19 -3
  97. package/build-style/accordion-heading/style.css +19 -3
  98. package/build-style/accordion-panel/style-rtl.css +4 -1
  99. package/build-style/accordion-panel/style.css +4 -1
  100. package/build-style/common-rtl.css +3 -3
  101. package/build-style/common.css +3 -3
  102. package/build-style/editor-rtl.css +62 -21
  103. package/build-style/editor.css +62 -21
  104. package/build-style/embed/style-rtl.css +5 -0
  105. package/build-style/embed/style.css +5 -0
  106. package/build-style/html/editor-rtl.css +55 -21
  107. package/build-style/html/editor.css +55 -21
  108. package/build-style/navigation-link/editor-rtl.css +7 -0
  109. package/build-style/navigation-link/editor.css +7 -0
  110. package/build-style/style-rtl.css +31 -7
  111. package/build-style/style.css +31 -7
  112. package/package.json +37 -37
  113. package/src/accordion-heading/style.scss +40 -7
  114. package/src/accordion-panel/style.scss +6 -1
  115. package/src/block/edit.js +2 -2
  116. package/src/block-keyboard-shortcuts/index.js +23 -9
  117. package/src/common.scss +6 -5
  118. package/src/cover/deprecated.js +15 -3
  119. package/src/cover/edit/inspector-controls.js +1 -1
  120. package/src/cover/transforms.js +10 -2
  121. package/src/embed/icons.js +2 -4
  122. package/src/embed/style.scss +6 -0
  123. package/src/embed/variations.js +3 -3
  124. package/src/heading/index.js +2 -0
  125. package/src/heading/transforms.js +10 -3
  126. package/src/heading/variations.js +37 -0
  127. package/src/html/edit.js +62 -56
  128. package/src/html/editor.scss +69 -10
  129. package/src/html/modal.js +290 -0
  130. package/src/html/test/utils.js +234 -0
  131. package/src/html/utils.js +75 -0
  132. package/src/navigation-link/edit.js +44 -13
  133. package/src/navigation-link/editor.scss +7 -0
  134. package/src/navigation-link/index.php +65 -2
  135. package/src/navigation-link/link-ui/index.js +9 -8
  136. package/src/navigation-link/shared/controls.js +70 -12
  137. package/src/navigation-link/shared/test/controls.js +5 -0
  138. package/src/navigation-link/shared/test/use-entity-binding.js +14 -1
  139. package/src/navigation-link/shared/use-entity-binding.js +57 -9
  140. package/src/paragraph/block.json +1 -3
  141. package/src/paragraph/deprecated.js +87 -20
  142. package/src/paragraph/edit.js +7 -18
  143. package/src/paragraph/edit.native.js +18 -6
  144. package/src/paragraph/index.js +2 -0
  145. package/src/paragraph/save.js +4 -3
  146. package/src/paragraph/test/edit.native.js +5 -5
  147. package/src/paragraph/transforms.js +7 -1
  148. package/src/paragraph/variations.js +39 -0
  149. package/tsconfig.tsbuildinfo +1 -1
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // packages/block-library/src/heading/variations.js
21
+ var variations_exports = {};
22
+ __export(variations_exports, {
23
+ default: () => variations_default
24
+ });
25
+ module.exports = __toCommonJS(variations_exports);
26
+ var import_i18n = require("@wordpress/i18n");
27
+ var import_primitives = require("@wordpress/primitives");
28
+ var import_icons = require("@wordpress/icons");
29
+ var import_jsx_runtime = require("react/jsx-runtime");
30
+ var variations = [
31
+ {
32
+ name: "heading",
33
+ title: (0, import_i18n.__)("Heading"),
34
+ description: (0, import_i18n.__)(
35
+ "Introduce new sections and organize content to help visitors (and search engines) understand the structure of your content."
36
+ ),
37
+ isDefault: true,
38
+ scope: ["inserter", "transform"],
39
+ attributes: { fitText: void 0 },
40
+ icon: import_icons.heading
41
+ },
42
+ // There is a hardcoded workaround in packages/block-editor/src/store/selectors.js
43
+ // to make Stretchy variations appear as the last of their sections in the inserter.
44
+ {
45
+ name: "stretchy-heading",
46
+ title: (0, import_i18n.__)("Stretchy Heading"),
47
+ description: (0, import_i18n.__)("Heading that resizes to fit its container."),
48
+ icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_primitives.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_primitives.Path, { d: "m3 18.6 6-4.7 6 4.7V5H3v13.6Zm16.2-9.8v1.5h2.2L17.7 14l1.1 1.1 3.7-3.7v2.2H24V8.8h-4.8Z" }) }),
49
+ attributes: { fitText: true },
50
+ scope: ["inserter", "transform"],
51
+ isActive: (blockAttributes) => blockAttributes.fitText === true
52
+ }
53
+ ];
54
+ var variations_default = variations;
55
+ //# sourceMappingURL=variations.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/heading/variations.js"],
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Path, SVG } from '@wordpress/primitives';\nimport { heading } from '@wordpress/icons';\n\nconst variations = [\n\t{\n\t\tname: 'heading',\n\t\ttitle: __( 'Heading' ),\n\t\tdescription: __(\n\t\t\t'Introduce new sections and organize content to help visitors (and search engines) understand the structure of your content.'\n\t\t),\n\t\tisDefault: true,\n\t\tscope: [ 'inserter', 'transform' ],\n\t\tattributes: { fitText: undefined },\n\t\ticon: heading,\n\t},\n\t// There is a hardcoded workaround in packages/block-editor/src/store/selectors.js\n\t// to make Stretchy variations appear as the last of their sections in the inserter.\n\t{\n\t\tname: 'stretchy-heading',\n\t\ttitle: __( 'Stretchy Heading' ),\n\t\tdescription: __( 'Heading that resizes to fit its container.' ),\n\t\ticon: (\n\t\t\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t\t\t<Path d=\"m3 18.6 6-4.7 6 4.7V5H3v13.6Zm16.2-9.8v1.5h2.2L17.7 14l1.1 1.1 3.7-3.7v2.2H24V8.8h-4.8Z\" />\n\t\t\t</SVG>\n\t\t),\n\t\tattributes: { fitText: true },\n\t\tscope: [ 'inserter', 'transform' ],\n\t\tisActive: ( blockAttributes ) => blockAttributes.fitText === true,\n\t},\n];\n\nexport default variations;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAAmB;AACnB,wBAA0B;AAC1B,mBAAwB;AAsBpB;AApBJ,IAAM,aAAa;AAAA,EAClB;AAAA,IACC,MAAM;AAAA,IACN,WAAO,gBAAI,SAAU;AAAA,IACrB,iBAAa;AAAA,MACZ;AAAA,IACD;AAAA,IACA,WAAW;AAAA,IACX,OAAO,CAAE,YAAY,WAAY;AAAA,IACjC,YAAY,EAAE,SAAS,OAAU;AAAA,IACjC,MAAM;AAAA,EACP;AAAA;AAAA;AAAA,EAGA;AAAA,IACC,MAAM;AAAA,IACN,WAAO,gBAAI,kBAAmB;AAAA,IAC9B,iBAAa,gBAAI,4CAA6C;AAAA,IAC9D,MACC,4CAAC,yBAAI,OAAM,8BAA6B,SAAQ,aAC/C,sDAAC,0BAAK,GAAE,2FAA0F,GACnG;AAAA,IAED,YAAY,EAAE,SAAS,KAAK;AAAA,IAC5B,OAAO,CAAE,YAAY,WAAY;AAAA,IACjC,UAAU,CAAE,oBAAqB,gBAAgB,YAAY;AAAA,EAC9D;AACD;AAEA,IAAO,qBAAQ;",
6
+ "names": []
7
+ }
@@ -37,64 +37,74 @@ var import_i18n = require("@wordpress/i18n");
37
37
  var import_element = require("@wordpress/element");
38
38
  var import_block_editor = require("@wordpress/block-editor");
39
39
  var import_components = require("@wordpress/components");
40
- var import_data = require("@wordpress/data");
41
- var import_compose = require("@wordpress/compose");
40
+ var import_icons = require("@wordpress/icons");
42
41
  var import_preview = __toESM(require("./preview"));
42
+ var import_modal = __toESM(require("./modal"));
43
43
  var import_jsx_runtime = require("react/jsx-runtime");
44
44
  function HTMLEdit({ attributes, setAttributes, isSelected }) {
45
- const [isPreview, setIsPreview] = (0, import_element.useState)();
46
- const isDisabled = (0, import_element.useContext)(import_components.Disabled.Context);
47
- const instanceId = (0, import_compose.useInstanceId)(HTMLEdit, "html-edit-desc");
48
- const isPreviewMode = (0, import_data.useSelect)((select) => {
49
- return select(import_block_editor.store).getSettings().isPreviewMode;
50
- }, []);
51
- function switchToPreview() {
52
- setIsPreview(true);
53
- }
54
- function switchToHTML() {
55
- setIsPreview(false);
56
- }
45
+ const [isModalOpen, setIsModalOpen] = (0, import_element.useState)(false);
57
46
  const blockProps = (0, import_block_editor.useBlockProps)({
58
- className: "block-library-html__edit",
59
- "aria-describedby": isPreview ? instanceId : void 0
47
+ className: "block-library-html__edit"
60
48
  });
61
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { ...blockProps, children: [
62
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_block_editor.BlockControls, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_components.ToolbarGroup, { children: [
49
+ if (!attributes.content?.trim()) {
50
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { ...blockProps, children: [
63
51
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
64
- import_components.ToolbarButton,
52
+ import_components.Placeholder,
65
53
  {
66
- isPressed: !isPreview,
67
- onClick: switchToHTML,
68
- children: "HTML"
54
+ icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_block_editor.BlockIcon, { icon: import_icons.code }),
55
+ label: (0, import_i18n.__)("Custom HTML"),
56
+ instructions: (0, import_i18n.__)(
57
+ "Add custom HTML code and preview how it looks."
58
+ ),
59
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
60
+ import_components.Button,
61
+ {
62
+ __next40pxDefaultSize: true,
63
+ variant: "primary",
64
+ onClick: () => setIsModalOpen(true),
65
+ children: (0, import_i18n.__)("Edit HTML")
66
+ }
67
+ )
69
68
  }
70
69
  ),
71
70
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
72
- import_components.ToolbarButton,
73
- {
74
- isPressed: isPreview,
75
- onClick: switchToPreview,
76
- children: (0, import_i18n.__)("Preview")
77
- }
78
- )
79
- ] }) }),
80
- isPreview || isPreviewMode || isDisabled ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
81
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
82
- import_preview.default,
71
+ import_modal.default,
83
72
  {
73
+ isOpen: isModalOpen,
74
+ onRequestClose: () => setIsModalOpen(false),
84
75
  content: attributes.content,
85
- isSelected
76
+ setAttributes
86
77
  }
87
- ),
88
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.VisuallyHidden, { id: instanceId, children: (0, import_i18n.__)(
89
- "HTML preview is not yet fully accessible. Please switch screen reader to virtualized mode to navigate the below iFrame."
90
- ) })
91
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
92
- import_block_editor.PlainText,
78
+ )
79
+ ] });
80
+ }
81
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { ...blockProps, children: [
82
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_block_editor.BlockControls, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.ToolbarGroup, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.ToolbarButton, { onClick: () => setIsModalOpen(true), children: (0, import_i18n.__)("Edit code") }) }) }),
83
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_block_editor.InspectorControls, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
84
+ import_components.__experimentalVStack,
85
+ {
86
+ className: "block-editor-block-inspector-edit-contents",
87
+ expanded: true,
88
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
89
+ import_components.Button,
90
+ {
91
+ className: "block-editor-block-inspector-edit-contents__button",
92
+ __next40pxDefaultSize: true,
93
+ variant: "secondary",
94
+ onClick: () => setIsModalOpen(true),
95
+ children: (0, import_i18n.__)("Edit code")
96
+ }
97
+ )
98
+ }
99
+ ) }),
100
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_preview.default, { content: attributes.content, isSelected }),
101
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
102
+ import_modal.default,
93
103
  {
94
- value: attributes.content,
95
- onChange: (content) => setAttributes({ content }),
96
- placeholder: (0, import_i18n.__)("Write HTML\u2026"),
97
- "aria-label": (0, import_i18n.__)("HTML")
104
+ isOpen: isModalOpen,
105
+ onRequestClose: () => setIsModalOpen(false),
106
+ content: attributes.content,
107
+ setAttributes
98
108
  }
99
109
  )
100
110
  ] });
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/html/edit.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useContext, useState } from '@wordpress/element';\nimport {\n\tBlockControls,\n\tPlainText,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport {\n\tToolbarButton,\n\tDisabled,\n\tToolbarGroup,\n\tVisuallyHidden,\n} from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { useInstanceId } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport Preview from './preview';\n\nexport default function HTMLEdit( { attributes, setAttributes, isSelected } ) {\n\tconst [ isPreview, setIsPreview ] = useState();\n\tconst isDisabled = useContext( Disabled.Context );\n\n\tconst instanceId = useInstanceId( HTMLEdit, 'html-edit-desc' );\n\n\tconst isPreviewMode = useSelect( ( select ) => {\n\t\treturn select( blockEditorStore ).getSettings().isPreviewMode;\n\t}, [] );\n\n\tfunction switchToPreview() {\n\t\tsetIsPreview( true );\n\t}\n\n\tfunction switchToHTML() {\n\t\tsetIsPreview( false );\n\t}\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: 'block-library-html__edit',\n\t\t'aria-describedby': isPreview ? instanceId : undefined,\n\t} );\n\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tisPressed={ ! isPreview }\n\t\t\t\t\t\tonClick={ switchToHTML }\n\t\t\t\t\t>\n\t\t\t\t\t\tHTML\n\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tisPressed={ isPreview }\n\t\t\t\t\t\tonClick={ switchToPreview }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Preview' ) }\n\t\t\t\t\t</ToolbarButton>\n\t\t\t\t</ToolbarGroup>\n\t\t\t</BlockControls>\n\t\t\t{ isPreview || isPreviewMode || isDisabled ? (\n\t\t\t\t<>\n\t\t\t\t\t<Preview\n\t\t\t\t\t\tcontent={ attributes.content }\n\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t/>\n\t\t\t\t\t<VisuallyHidden id={ instanceId }>\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'HTML preview is not yet fully accessible. Please switch screen reader to virtualized mode to navigate the below iFrame.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t</>\n\t\t\t) : (\n\t\t\t\t<PlainText\n\t\t\t\t\tvalue={ attributes.content }\n\t\t\t\t\tonChange={ ( content ) => setAttributes( { content } ) }\n\t\t\t\t\tplaceholder={ __( 'Write HTML\u2026' ) }\n\t\t\t\t\taria-label={ __( 'HTML' ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAAmB;AACnB,qBAAqC;AACrC,0BAKO;AACP,wBAKO;AACP,kBAA0B;AAC1B,qBAA8B;AAK9B,qBAAoB;AA4BhB;AA1BW,SAAR,SAA2B,EAAE,YAAY,eAAe,WAAW,GAAI;AAC7E,QAAM,CAAE,WAAW,YAAa,QAAI,yBAAS;AAC7C,QAAM,iBAAa,2BAAY,2BAAS,OAAQ;AAEhD,QAAM,iBAAa,8BAAe,UAAU,gBAAiB;AAE7D,QAAM,oBAAgB,uBAAW,CAAE,WAAY;AAC9C,WAAO,OAAQ,oBAAAA,KAAiB,EAAE,YAAY,EAAE;AAAA,EACjD,GAAG,CAAC,CAAE;AAEN,WAAS,kBAAkB;AAC1B,iBAAc,IAAK;AAAA,EACpB;AAEA,WAAS,eAAe;AACvB,iBAAc,KAAM;AAAA,EACrB;AAEA,QAAM,iBAAa,mCAAe;AAAA,IACjC,WAAW;AAAA,IACX,oBAAoB,YAAY,aAAa;AAAA,EAC9C,CAAE;AAEF,SACC,6CAAC,SAAM,GAAG,YACT;AAAA,gDAAC,qCACA,uDAAC,kCACA;AAAA;AAAA,QAAC;AAAA;AAAA,UACA,WAAY,CAAE;AAAA,UACd,SAAU;AAAA,UACV;AAAA;AAAA,MAED;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACA,WAAY;AAAA,UACZ,SAAU;AAAA,UAER,8BAAI,SAAU;AAAA;AAAA,MACjB;AAAA,OACD,GACD;AAAA,IACE,aAAa,iBAAiB,aAC/B,4EACC;AAAA;AAAA,QAAC,eAAAC;AAAA,QAAA;AAAA,UACA,SAAU,WAAW;AAAA,UACrB;AAAA;AAAA,MACD;AAAA,MACA,4CAAC,oCAAe,IAAK,YAClB;AAAA,QACD;AAAA,MACD,GACD;AAAA,OACD,IAEA;AAAA,MAAC;AAAA;AAAA,QACA,OAAQ,WAAW;AAAA,QACnB,UAAW,CAAE,YAAa,cAAe,EAAE,QAAQ,CAAE;AAAA,QACrD,iBAAc,gBAAI,kBAAc;AAAA,QAChC,kBAAa,gBAAI,MAAO;AAAA;AAAA,IACzB;AAAA,KAEF;AAEF;",
6
- "names": ["blockEditorStore", "Preview"]
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\nimport {\n\tBlockControls,\n\tBlockIcon,\n\tInspectorControls,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport {\n\tToolbarButton,\n\tToolbarGroup,\n\tPlaceholder,\n\tButton,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { code } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport Preview from './preview';\nimport HTMLEditModal from './modal';\n\nexport default function HTMLEdit( { attributes, setAttributes, isSelected } ) {\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\tconst blockProps = useBlockProps( {\n\t\tclassName: 'block-library-html__edit',\n\t} );\n\n\t// Show placeholder when content is empty\n\tif ( ! attributes.content?.trim() ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Placeholder\n\t\t\t\t\ticon={ <BlockIcon icon={ code } /> }\n\t\t\t\t\tlabel={ __( 'Custom HTML' ) }\n\t\t\t\t\tinstructions={ __(\n\t\t\t\t\t\t'Add custom HTML code and preview how it looks.'\n\t\t\t\t\t) }\n\t\t\t\t>\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ () => setIsModalOpen( true ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Edit HTML' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</Placeholder>\n\t\t\t\t<HTMLEditModal\n\t\t\t\t\tisOpen={ isModalOpen }\n\t\t\t\t\tonRequestClose={ () => setIsModalOpen( false ) }\n\t\t\t\t\tcontent={ attributes.content }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t<ToolbarButton onClick={ () => setIsModalOpen( true ) }>\n\t\t\t\t\t\t{ __( 'Edit code' ) }\n\t\t\t\t\t</ToolbarButton>\n\t\t\t\t</ToolbarGroup>\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls>\n\t\t\t\t<VStack\n\t\t\t\t\tclassName=\"block-editor-block-inspector-edit-contents\"\n\t\t\t\t\texpanded\n\t\t\t\t>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclassName=\"block-editor-block-inspector-edit-contents__button\"\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\tonClick={ () => setIsModalOpen( true ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Edit code' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</VStack>\n\t\t\t</InspectorControls>\n\t\t\t<Preview content={ attributes.content } isSelected={ isSelected } />\n\t\t\t<HTMLEditModal\n\t\t\t\tisOpen={ isModalOpen }\n\t\t\t\tonRequestClose={ () => setIsModalOpen( false ) }\n\t\t\t\tcontent={ attributes.content }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t/>\n\t\t</div>\n\t);\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAAmB;AACnB,qBAAyB;AACzB,0BAKO;AACP,wBAMO;AACP,mBAAqB;AAKrB,qBAAoB;AACpB,mBAA0B;AAWvB;AATY,SAAR,SAA2B,EAAE,YAAY,eAAe,WAAW,GAAI;AAC7E,QAAM,CAAE,aAAa,cAAe,QAAI,yBAAU,KAAM;AACxD,QAAM,iBAAa,mCAAe;AAAA,IACjC,WAAW;AAAA,EACZ,CAAE;AAGF,MAAK,CAAE,WAAW,SAAS,KAAK,GAAI;AACnC,WACC,6CAAC,SAAM,GAAG,YACT;AAAA;AAAA,QAAC;AAAA;AAAA,UACA,MAAO,4CAAC,iCAAU,MAAO,mBAAO;AAAA,UAChC,WAAQ,gBAAI,aAAc;AAAA,UAC1B,kBAAe;AAAA,YACd;AAAA,UACD;AAAA,UAEA;AAAA,YAAC;AAAA;AAAA,cACA,uBAAqB;AAAA,cACrB,SAAQ;AAAA,cACR,SAAU,MAAM,eAAgB,IAAK;AAAA,cAEnC,8BAAI,WAAY;AAAA;AAAA,UACnB;AAAA;AAAA,MACD;AAAA,MACA;AAAA,QAAC,aAAAA;AAAA,QAAA;AAAA,UACA,QAAS;AAAA,UACT,gBAAiB,MAAM,eAAgB,KAAM;AAAA,UAC7C,SAAU,WAAW;AAAA,UACrB;AAAA;AAAA,MACD;AAAA,OACD;AAAA,EAEF;AAEA,SACC,6CAAC,SAAM,GAAG,YACT;AAAA,gDAAC,qCACA,sDAAC,kCACA,sDAAC,mCAAc,SAAU,MAAM,eAAgB,IAAK,GACjD,8BAAI,WAAY,GACnB,GACD,GACD;AAAA,IACA,4CAAC,yCACA;AAAA,MAAC,kBAAAC;AAAA,MAAA;AAAA,QACA,WAAU;AAAA,QACV,UAAQ;AAAA,QAER;AAAA,UAAC;AAAA;AAAA,YACA,WAAU;AAAA,YACV,uBAAqB;AAAA,YACrB,SAAQ;AAAA,YACR,SAAU,MAAM,eAAgB,IAAK;AAAA,YAEnC,8BAAI,WAAY;AAAA;AAAA,QACnB;AAAA;AAAA,IACD,GACD;AAAA,IACA,4CAAC,eAAAC,SAAA,EAAQ,SAAU,WAAW,SAAU,YAA0B;AAAA,IAClE;AAAA,MAAC,aAAAF;AAAA,MAAA;AAAA,QACA,QAAS;AAAA,QACT,gBAAiB,MAAM,eAAgB,KAAM;AAAA,QAC7C,SAAU,WAAW;AAAA,QACrB;AAAA;AAAA,IACD;AAAA,KACD;AAEF;",
6
+ "names": ["HTMLEditModal", "VStack", "Preview"]
7
7
  }
@@ -0,0 +1,328 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+
30
+ // packages/block-library/src/html/modal.js
31
+ var modal_exports = {};
32
+ __export(modal_exports, {
33
+ default: () => HTMLEditModal
34
+ });
35
+ module.exports = __toCommonJS(modal_exports);
36
+ var import_i18n = require("@wordpress/i18n");
37
+ var import_element = require("@wordpress/element");
38
+ var import_data = require("@wordpress/data");
39
+ var import_components = require("@wordpress/components");
40
+ var import_block_editor = require("@wordpress/block-editor");
41
+ var import_icons = require("@wordpress/icons");
42
+ var import_lock_unlock = require("../lock-unlock");
43
+ var import_preview = __toESM(require("./preview"));
44
+ var import_utils = require("./utils");
45
+ var import_jsx_runtime = require("react/jsx-runtime");
46
+ var { Tabs } = (0, import_lock_unlock.unlock)(import_components.privateApis);
47
+ function HTMLEditModal({
48
+ isOpen,
49
+ onRequestClose,
50
+ content,
51
+ setAttributes
52
+ }) {
53
+ const { html, css, js } = (0, import_utils.parseContent)(content);
54
+ const [editedHtml, setEditedHtml] = (0, import_element.useState)(html);
55
+ const [editedCss, setEditedCss] = (0, import_element.useState)(css);
56
+ const [editedJs, setEditedJs] = (0, import_element.useState)(js);
57
+ const [isDirty, setIsDirty] = (0, import_element.useState)(false);
58
+ const [showUnsavedWarning, setShowUnsavedWarning] = (0, import_element.useState)(false);
59
+ const [isFullscreen, setIsFullscreen] = (0, import_element.useState)(false);
60
+ const { canUserUseUnfilteredHTML, editorStyles } = (0, import_data.useSelect)(
61
+ (select) => {
62
+ const settings = select(import_block_editor.store).getSettings();
63
+ return {
64
+ canUserUseUnfilteredHTML: settings.__experimentalCanUserUseUnfilteredHTML,
65
+ editorStyles: settings.styles
66
+ };
67
+ },
68
+ []
69
+ );
70
+ const shouldShowJsTab = canUserUseUnfilteredHTML || js.trim() !== "";
71
+ const styleContent = (0, import_element.useMemo)(() => {
72
+ if (!editorStyles) {
73
+ return "";
74
+ }
75
+ return editorStyles.filter((style) => style.css).map((style) => style.css).join("\n");
76
+ }, [editorStyles]);
77
+ if (!isOpen) {
78
+ return null;
79
+ }
80
+ const handleHtmlChange = (value) => {
81
+ setEditedHtml(value);
82
+ setIsDirty(true);
83
+ };
84
+ const handleCssChange = (value) => {
85
+ setEditedCss(value);
86
+ setIsDirty(true);
87
+ };
88
+ const handleJsChange = (value) => {
89
+ setEditedJs(value);
90
+ setIsDirty(true);
91
+ };
92
+ const handleUpdate = () => {
93
+ setAttributes({
94
+ content: (0, import_utils.serializeContent)({
95
+ html: editedHtml,
96
+ css: editedCss,
97
+ js: editedJs
98
+ })
99
+ });
100
+ setIsDirty(false);
101
+ };
102
+ const handleCancel = () => {
103
+ setIsDirty(false);
104
+ onRequestClose();
105
+ };
106
+ const handleRequestClose = () => {
107
+ if (isDirty) {
108
+ setShowUnsavedWarning(true);
109
+ } else {
110
+ onRequestClose();
111
+ }
112
+ };
113
+ const handleDiscardChanges = () => {
114
+ setShowUnsavedWarning(false);
115
+ onRequestClose();
116
+ };
117
+ const handleContinueEditing = () => {
118
+ setShowUnsavedWarning(false);
119
+ };
120
+ const handleUpdateAndClose = () => {
121
+ handleUpdate();
122
+ onRequestClose();
123
+ };
124
+ const toggleFullscreen = () => {
125
+ setIsFullscreen((prevState) => !prevState);
126
+ };
127
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
128
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
129
+ import_components.Modal,
130
+ {
131
+ title: (0, import_i18n.__)("Edit HTML"),
132
+ onRequestClose: handleRequestClose,
133
+ className: "block-library-html__modal",
134
+ size: "large",
135
+ isDismissible: false,
136
+ shouldCloseOnClickOutside: !isDirty,
137
+ shouldCloseOnEsc: !isDirty,
138
+ isFullScreen: isFullscreen,
139
+ __experimentalHideHeader: true,
140
+ children: [
141
+ styleContent && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
142
+ "style",
143
+ {
144
+ dangerouslySetInnerHTML: { __html: styleContent }
145
+ }
146
+ ),
147
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Tabs, { orientation: "horizontal", defaultTabId: "html", children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_components.__experimentalVStack, { spacing: 4, style: { height: "100%" }, children: [
148
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_components.__experimentalHStack, { justify: "space-between", children: [
149
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Tabs.TabList, { children: [
150
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Tabs.Tab, { tabId: "html", children: "HTML" }),
151
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Tabs.Tab, { tabId: "css", children: "CSS" }),
152
+ shouldShowJsTab && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Tabs.Tab, { tabId: "js", children: (0, import_i18n.__)("JavaScript") })
153
+ ] }) }),
154
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
155
+ import_components.Button,
156
+ {
157
+ __next40pxDefaultSize: true,
158
+ icon: isFullscreen ? import_icons.square : import_icons.fullscreen,
159
+ label: (0, import_i18n.__)("Enable/disable fullscreen"),
160
+ onClick: toggleFullscreen,
161
+ variant: "tertiary"
162
+ }
163
+ ) })
164
+ ] }),
165
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
166
+ import_components.__experimentalHStack,
167
+ {
168
+ alignment: "stretch",
169
+ justify: "flex-start",
170
+ spacing: 4,
171
+ className: "block-library-html__modal-tabs",
172
+ style: { flexGrow: 1 },
173
+ children: [
174
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: { flexGrow: 1 }, children: [
175
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
176
+ Tabs.TabPanel,
177
+ {
178
+ tabId: "html",
179
+ focusable: false,
180
+ className: "block-library-html__modal-tab",
181
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
182
+ import_block_editor.PlainText,
183
+ {
184
+ value: editedHtml,
185
+ onChange: handleHtmlChange,
186
+ placeholder: (0, import_i18n.__)("Write HTML\u2026"),
187
+ "aria-label": (0, import_i18n.__)("HTML"),
188
+ className: "block-library-html__modal-editor"
189
+ }
190
+ )
191
+ }
192
+ ),
193
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
194
+ Tabs.TabPanel,
195
+ {
196
+ tabId: "css",
197
+ focusable: false,
198
+ className: "block-library-html__modal-tab",
199
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
200
+ import_block_editor.PlainText,
201
+ {
202
+ value: editedCss,
203
+ onChange: handleCssChange,
204
+ placeholder: (0, import_i18n.__)("Write CSS\u2026"),
205
+ "aria-label": (0, import_i18n.__)("CSS"),
206
+ className: "block-library-html__modal-editor"
207
+ }
208
+ )
209
+ }
210
+ ),
211
+ shouldShowJsTab && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
212
+ Tabs.TabPanel,
213
+ {
214
+ tabId: "js",
215
+ focusable: false,
216
+ className: "block-library-html__modal-tab",
217
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
218
+ import_block_editor.PlainText,
219
+ {
220
+ value: editedJs,
221
+ onChange: handleJsChange,
222
+ placeholder: (0, import_i18n.__)(
223
+ "Write JavaScript\u2026"
224
+ ),
225
+ "aria-label": (0, import_i18n.__)("JavaScript"),
226
+ className: "block-library-html__modal-editor"
227
+ }
228
+ )
229
+ }
230
+ )
231
+ ] }),
232
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
233
+ "div",
234
+ {
235
+ className: "block-library-html__preview",
236
+ style: { width: "50%" },
237
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
238
+ import_preview.default,
239
+ {
240
+ content: (0, import_utils.serializeContent)({
241
+ html: editedHtml,
242
+ css: editedCss,
243
+ js: editedJs
244
+ })
245
+ }
246
+ )
247
+ }
248
+ )
249
+ ]
250
+ }
251
+ ),
252
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
253
+ import_components.__experimentalHStack,
254
+ {
255
+ alignment: "center",
256
+ justify: "flex-end",
257
+ spacing: 4,
258
+ children: [
259
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
260
+ import_components.Button,
261
+ {
262
+ __next40pxDefaultSize: true,
263
+ variant: "tertiary",
264
+ onClick: handleCancel,
265
+ children: (0, import_i18n.__)("Cancel")
266
+ }
267
+ ),
268
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
269
+ import_components.Button,
270
+ {
271
+ __next40pxDefaultSize: true,
272
+ variant: "primary",
273
+ onClick: handleUpdateAndClose,
274
+ children: (0, import_i18n.__)("Update")
275
+ }
276
+ )
277
+ ]
278
+ }
279
+ )
280
+ ] }) })
281
+ ]
282
+ }
283
+ ),
284
+ showUnsavedWarning && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
285
+ import_components.Modal,
286
+ {
287
+ title: (0, import_i18n.__)("Unsaved changes"),
288
+ onRequestClose: handleContinueEditing,
289
+ size: "medium",
290
+ children: [
291
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { children: (0, import_i18n.__)(
292
+ "You have unsaved changes. What would you like to do?"
293
+ ) }),
294
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_components.Flex, { direction: "row", justify: "flex-end", gap: 2, children: [
295
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
296
+ import_components.Button,
297
+ {
298
+ __next40pxDefaultSize: true,
299
+ variant: "secondary",
300
+ onClick: handleDiscardChanges,
301
+ children: (0, import_i18n.__)("Discard unsaved changes")
302
+ }
303
+ ),
304
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
305
+ import_components.Button,
306
+ {
307
+ __next40pxDefaultSize: true,
308
+ variant: "secondary",
309
+ onClick: handleContinueEditing,
310
+ children: (0, import_i18n.__)("Continue editing")
311
+ }
312
+ ),
313
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
314
+ import_components.Button,
315
+ {
316
+ __next40pxDefaultSize: true,
317
+ variant: "primary",
318
+ onClick: handleUpdateAndClose,
319
+ children: (0, import_i18n.__)("Update and close")
320
+ }
321
+ )
322
+ ] })
323
+ ]
324
+ }
325
+ )
326
+ ] });
327
+ }
328
+ //# sourceMappingURL=modal.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/html/modal.js"],
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useState, useMemo } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport {\n\tModal,\n\tButton,\n\tFlex,\n\tprivateApis as componentsPrivateApis,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\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, editorStyles } = useSelect(\n\t\t( select ) => {\n\t\t\tconst settings = select( blockEditorStore ).getSettings();\n\t\t\treturn {\n\t\t\t\tcanUserUseUnfilteredHTML:\n\t\t\t\t\tsettings.__experimentalCanUserUseUnfilteredHTML,\n\t\t\t\teditorStyles: settings.styles,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\t// Show JS tab if user has permission OR if block contains JavaScript\n\tconst shouldShowJsTab = canUserUseUnfilteredHTML || js.trim() !== '';\n\n\t// Combine all editor styles to inject into modal\n\tconst styleContent = useMemo( () => {\n\t\tif ( ! editorStyles ) {\n\t\t\treturn '';\n\t\t}\n\t\treturn editorStyles\n\t\t\t.filter( ( style ) => style.css )\n\t\t\t.map( ( style ) => style.css )\n\t\t\t.join( '\\n' );\n\t}, [ editorStyles ] );\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\tsetAttributes( {\n\t\t\tcontent: serializeContent( {\n\t\t\t\thtml: editedHtml,\n\t\t\t\tcss: editedCss,\n\t\t\t\tjs: 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{ styleContent && (\n\t\t\t\t\t<style\n\t\t\t\t\t\tdangerouslySetInnerHTML={ { __html: styleContent } }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t<Tabs orientation=\"horizontal\" defaultTabId=\"html\">\n\t\t\t\t\t<VStack spacing={ 4 } style={ { height: '100%' } }>\n\t\t\t\t\t\t<HStack justify=\"space-between\">\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<Tabs.Tab tabId=\"css\">CSS</Tabs.Tab>\n\t\t\t\t\t\t\t\t\t{ shouldShowJsTab && (\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<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\tstyle={ { flexGrow: 1 } }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div style={ { flexGrow: 1 } }>\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<Tabs.TabPanel\n\t\t\t\t\t\t\t\t\ttabId=\"css\"\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={ editedCss }\n\t\t\t\t\t\t\t\t\t\tonChange={ handleCssChange }\n\t\t\t\t\t\t\t\t\t\tplaceholder={ __( 'Write CSS\u2026' ) }\n\t\t\t\t\t\t\t\t\t\taria-label={ __( 'CSS' ) }\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{ shouldShowJsTab && (\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\n\t\t\t\t\t\t\t\tclassName=\"block-library-html__preview\"\n\t\t\t\t\t\t\t\tstyle={ { width: '50%' } }\n\t\t\t\t\t\t\t>\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>\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</VStack>\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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",
6
+ "names": ["componentsPrivateApis", "blockEditorStore", "VStack", "HStack", "Preview"]
7
+ }