@wordpress/block-library 8.20.0 → 8.21.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 (277) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/README.md +12 -0
  3. package/build/block/index.js +2 -1
  4. package/build/block/index.js.map +1 -1
  5. package/build/code/edit.native.js +8 -2
  6. package/build/code/edit.native.js.map +1 -1
  7. package/build/cover/deprecated.js +110 -1
  8. package/build/cover/deprecated.js.map +1 -1
  9. package/build/cover/edit/index.js +9 -3
  10. package/build/cover/edit/index.js.map +1 -1
  11. package/build/cover/edit/inspector-controls.js +1 -2
  12. package/build/cover/edit/inspector-controls.js.map +1 -1
  13. package/build/cover/index.js +0 -3
  14. package/build/cover/index.js.map +1 -1
  15. package/build/cover/save.js +2 -1
  16. package/build/cover/save.js.map +1 -1
  17. package/build/cover/shared.js +1 -1
  18. package/build/cover/shared.js.map +1 -1
  19. package/build/footnotes/index.js +1 -0
  20. package/build/footnotes/index.js.map +1 -1
  21. package/build/form/edit.js +138 -0
  22. package/build/form/edit.js.map +1 -0
  23. package/build/form/index.js +92 -0
  24. package/build/form/index.js.map +1 -0
  25. package/build/form/init.js +13 -0
  26. package/build/form/init.js.map +1 -0
  27. package/build/form/save.js +28 -0
  28. package/build/form/save.js.map +1 -0
  29. package/build/form/utils.js +24 -0
  30. package/build/form/utils.js.map +1 -0
  31. package/build/form/variations.js +95 -0
  32. package/build/form/variations.js.map +1 -0
  33. package/build/form/view.js +42 -0
  34. package/build/form/view.js.map +1 -0
  35. package/build/form-input/edit.js +124 -0
  36. package/build/form-input/edit.js.map +1 -0
  37. package/build/form-input/index.js +105 -0
  38. package/build/form-input/index.js.map +1 -0
  39. package/build/form-input/init.js +13 -0
  40. package/build/form-input/init.js.map +1 -0
  41. package/build/form-input/save.js +87 -0
  42. package/build/form-input/save.js.map +1 -0
  43. package/build/form-input/variations.js +93 -0
  44. package/build/form-input/variations.js.map +1 -0
  45. package/build/form-submission-notification/edit.js +59 -0
  46. package/build/form-submission-notification/edit.js.map +1 -0
  47. package/build/form-submission-notification/index.js +56 -0
  48. package/build/form-submission-notification/index.js.map +1 -0
  49. package/build/form-submission-notification/init.js +13 -0
  50. package/build/form-submission-notification/init.js.map +1 -0
  51. package/build/form-submission-notification/save.js +33 -0
  52. package/build/form-submission-notification/save.js.map +1 -0
  53. package/build/form-submission-notification/variations.js +63 -0
  54. package/build/form-submission-notification/variations.js.map +1 -0
  55. package/build/form-submit-button/edit.js +32 -0
  56. package/build/form-submit-button/edit.js.map +1 -0
  57. package/build/form-submit-button/index.js +44 -0
  58. package/build/form-submit-button/index.js.map +1 -0
  59. package/build/form-submit-button/init.js +13 -0
  60. package/build/form-submit-button/init.js.map +1 -0
  61. package/build/form-submit-button/save.js +22 -0
  62. package/build/form-submit-button/save.js.map +1 -0
  63. package/build/group/index.js +0 -1
  64. package/build/group/index.js.map +1 -1
  65. package/build/heading/index.js +3 -2
  66. package/build/heading/index.js.map +1 -1
  67. package/build/image/image.js +4 -1
  68. package/build/image/image.js.map +1 -1
  69. package/build/image/view.js +82 -40
  70. package/build/image/view.js.map +1 -1
  71. package/build/index.js +10 -0
  72. package/build/index.js.map +1 -1
  73. package/build/latest-posts/edit.js +6 -2
  74. package/build/latest-posts/edit.js.map +1 -1
  75. package/build/list-item/hooks/use-merge.js +15 -15
  76. package/build/list-item/hooks/use-merge.js.map +1 -1
  77. package/build/lock-unlock.js +1 -1
  78. package/build/lock-unlock.js.map +1 -1
  79. package/build/missing/edit.native.js +14 -62
  80. package/build/missing/edit.native.js.map +1 -1
  81. package/build/navigation/edit/index.js +0 -1
  82. package/build/navigation/edit/index.js.map +1 -1
  83. package/build/navigation/index.js +2 -1
  84. package/build/navigation/index.js.map +1 -1
  85. package/build/navigation/view.js +27 -5
  86. package/build/navigation/view.js.map +1 -1
  87. package/build/page-list-item/edit.js +3 -1
  88. package/build/page-list-item/edit.js.map +1 -1
  89. package/build/paragraph/index.js +7 -0
  90. package/build/paragraph/index.js.map +1 -1
  91. package/build/pattern/index.js +2 -1
  92. package/build/pattern/index.js.map +1 -1
  93. package/build/template-part/index.js +2 -1
  94. package/build/template-part/index.js.map +1 -1
  95. package/build-module/block/index.js +2 -1
  96. package/build-module/block/index.js.map +1 -1
  97. package/build-module/code/edit.native.js +8 -2
  98. package/build-module/code/edit.native.js.map +1 -1
  99. package/build-module/cover/deprecated.js +110 -1
  100. package/build-module/cover/deprecated.js.map +1 -1
  101. package/build-module/cover/edit/index.js +9 -3
  102. package/build-module/cover/edit/index.js.map +1 -1
  103. package/build-module/cover/edit/inspector-controls.js +1 -2
  104. package/build-module/cover/edit/inspector-controls.js.map +1 -1
  105. package/build-module/cover/index.js +0 -3
  106. package/build-module/cover/index.js.map +1 -1
  107. package/build-module/cover/save.js +2 -1
  108. package/build-module/cover/save.js.map +1 -1
  109. package/build-module/cover/shared.js +1 -1
  110. package/build-module/cover/shared.js.map +1 -1
  111. package/build-module/footnotes/index.js +1 -0
  112. package/build-module/footnotes/index.js.map +1 -1
  113. package/build-module/form/edit.js +130 -0
  114. package/build-module/form/edit.js.map +1 -0
  115. package/build-module/form/index.js +82 -0
  116. package/build-module/form/index.js.map +1 -0
  117. package/build-module/form/init.js +6 -0
  118. package/build-module/form/init.js.map +1 -0
  119. package/build-module/form/save.js +20 -0
  120. package/build-module/form/save.js.map +1 -0
  121. package/build-module/form/utils.js +15 -0
  122. package/build-module/form/utils.js.map +1 -0
  123. package/build-module/form/variations.js +86 -0
  124. package/build-module/form/variations.js.map +1 -0
  125. package/build-module/form/view.js +40 -0
  126. package/build-module/form/view.js.map +1 -0
  127. package/build-module/form-input/edit.js +115 -0
  128. package/build-module/form-input/edit.js.map +1 -0
  129. package/build-module/form-input/index.js +95 -0
  130. package/build-module/form-input/index.js.map +1 -0
  131. package/build-module/form-input/init.js +6 -0
  132. package/build-module/form-input/init.js.map +1 -0
  133. package/build-module/form-input/save.js +80 -0
  134. package/build-module/form-input/save.js.map +1 -0
  135. package/build-module/form-input/variations.js +85 -0
  136. package/build-module/form-input/variations.js.map +1 -0
  137. package/build-module/form-submission-notification/edit.js +50 -0
  138. package/build-module/form-submission-notification/edit.js.map +1 -0
  139. package/build-module/form-submission-notification/index.js +47 -0
  140. package/build-module/form-submission-notification/index.js.map +1 -0
  141. package/build-module/form-submission-notification/init.js +6 -0
  142. package/build-module/form-submission-notification/init.js.map +1 -0
  143. package/build-module/form-submission-notification/save.js +25 -0
  144. package/build-module/form-submission-notification/save.js.map +1 -0
  145. package/build-module/form-submission-notification/variations.js +55 -0
  146. package/build-module/form-submission-notification/variations.js.map +1 -0
  147. package/build-module/form-submit-button/edit.js +24 -0
  148. package/build-module/form-submit-button/edit.js.map +1 -0
  149. package/build-module/form-submit-button/index.js +34 -0
  150. package/build-module/form-submit-button/index.js.map +1 -0
  151. package/build-module/form-submit-button/init.js +6 -0
  152. package/build-module/form-submit-button/init.js.map +1 -0
  153. package/build-module/form-submit-button/save.js +14 -0
  154. package/build-module/form-submit-button/save.js.map +1 -0
  155. package/build-module/group/index.js +0 -1
  156. package/build-module/group/index.js.map +1 -1
  157. package/build-module/heading/index.js +3 -2
  158. package/build-module/heading/index.js.map +1 -1
  159. package/build-module/image/image.js +4 -1
  160. package/build-module/image/image.js.map +1 -1
  161. package/build-module/image/view.js +82 -40
  162. package/build-module/image/view.js.map +1 -1
  163. package/build-module/index.js +10 -0
  164. package/build-module/index.js.map +1 -1
  165. package/build-module/latest-posts/edit.js +6 -2
  166. package/build-module/latest-posts/edit.js.map +1 -1
  167. package/build-module/list-item/hooks/use-merge.js +15 -15
  168. package/build-module/list-item/hooks/use-merge.js.map +1 -1
  169. package/build-module/lock-unlock.js +1 -1
  170. package/build-module/lock-unlock.js.map +1 -1
  171. package/build-module/missing/edit.native.js +17 -65
  172. package/build-module/missing/edit.native.js.map +1 -1
  173. package/build-module/navigation/edit/index.js +0 -1
  174. package/build-module/navigation/edit/index.js.map +1 -1
  175. package/build-module/navigation/index.js +2 -1
  176. package/build-module/navigation/index.js.map +1 -1
  177. package/build-module/navigation/view.js +27 -5
  178. package/build-module/navigation/view.js.map +1 -1
  179. package/build-module/page-list-item/edit.js +3 -1
  180. package/build-module/page-list-item/edit.js.map +1 -1
  181. package/build-module/paragraph/index.js +7 -0
  182. package/build-module/paragraph/index.js.map +1 -1
  183. package/build-module/pattern/index.js +2 -1
  184. package/build-module/pattern/index.js.map +1 -1
  185. package/build-module/template-part/index.js +2 -1
  186. package/build-module/template-part/index.js.map +1 -1
  187. package/build-style/editor-rtl.css +50 -0
  188. package/build-style/editor.css +50 -0
  189. package/build-style/form-input/editor-rtl.css +106 -0
  190. package/build-style/form-input/editor.css +106 -0
  191. package/build-style/form-input/style-rtl.css +135 -0
  192. package/build-style/form-input/style.css +135 -0
  193. package/build-style/form-submission-notification/editor-rtl.css +118 -0
  194. package/build-style/form-submission-notification/editor.css +118 -0
  195. package/build-style/form-submit-button/style-rtl.css +91 -0
  196. package/build-style/form-submit-button/style.css +91 -0
  197. package/build-style/image/style-rtl.css +39 -5
  198. package/build-style/image/style.css +39 -5
  199. package/build-style/query/style-rtl.css +0 -10
  200. package/build-style/query/style.css +0 -10
  201. package/build-style/style-rtl.css +87 -5
  202. package/build-style/style.css +87 -5
  203. package/package.json +32 -32
  204. package/src/block/block.json +2 -1
  205. package/src/code/edit.native.js +15 -1
  206. package/src/cover/block.json +0 -3
  207. package/src/cover/deprecated.js +151 -1
  208. package/src/cover/edit/index.js +12 -3
  209. package/src/cover/edit/inspector-controls.js +19 -25
  210. package/src/cover/save.js +2 -1
  211. package/src/cover/shared.js +1 -1
  212. package/src/editor.scss +2 -0
  213. package/src/footnotes/block.json +1 -0
  214. package/src/form/block.json +60 -0
  215. package/src/form/edit.js +179 -0
  216. package/src/form/index.js +20 -0
  217. package/src/form/index.php +214 -0
  218. package/src/form/init.js +6 -0
  219. package/src/form/save.js +20 -0
  220. package/src/form/utils.js +39 -0
  221. package/src/form/variations.js +139 -0
  222. package/src/form/view.js +41 -0
  223. package/src/form-input/block.json +73 -0
  224. package/src/form-input/edit.js +151 -0
  225. package/src/form-input/editor.scss +24 -0
  226. package/src/form-input/index.js +20 -0
  227. package/src/form-input/index.php +45 -0
  228. package/src/form-input/init.js +6 -0
  229. package/src/form-input/save.js +83 -0
  230. package/src/form-input/style.scss +61 -0
  231. package/src/form-input/variations.js +82 -0
  232. package/src/form-submission-notification/block.json +19 -0
  233. package/src/form-submission-notification/edit.js +63 -0
  234. package/src/form-submission-notification/editor.scss +45 -0
  235. package/src/form-submission-notification/index.js +26 -0
  236. package/src/form-submission-notification/index.php +48 -0
  237. package/src/form-submission-notification/init.js +6 -0
  238. package/src/form-submission-notification/save.js +28 -0
  239. package/src/form-submission-notification/variations.js +59 -0
  240. package/src/form-submit-button/block.json +14 -0
  241. package/src/form-submit-button/edit.js +33 -0
  242. package/src/form-submit-button/index.js +18 -0
  243. package/src/form-submit-button/init.js +6 -0
  244. package/src/form-submit-button/save.js +14 -0
  245. package/src/form-submit-button/style.scss +3 -0
  246. package/src/group/block.json +0 -1
  247. package/src/heading/index.js +4 -2
  248. package/src/image/image.js +10 -0
  249. package/src/image/index.php +128 -82
  250. package/src/image/style.scss +49 -5
  251. package/src/image/view.js +100 -52
  252. package/src/index.js +10 -0
  253. package/src/latest-posts/edit.js +11 -2
  254. package/src/latest-posts/index.php +17 -8
  255. package/src/list-item/hooks/use-merge.js +20 -23
  256. package/src/lock-unlock.js +1 -1
  257. package/src/missing/edit.native.js +17 -115
  258. package/src/missing/style.native.scss +0 -67
  259. package/src/missing/test/edit-integration.native.js +135 -49
  260. package/src/missing/test/edit.native.js +0 -41
  261. package/src/navigation/block.json +2 -1
  262. package/src/navigation/edit/index.js +0 -1
  263. package/src/navigation/index.php +28 -8
  264. package/src/navigation/view.js +25 -6
  265. package/src/page-list-item/edit.js +2 -0
  266. package/src/paragraph/index.js +10 -0
  267. package/src/pattern/block.json +2 -1
  268. package/src/pattern/index.php +0 -3
  269. package/src/post-navigation-link/index.php +2 -1
  270. package/src/preformatted/test/edit.native.js +38 -0
  271. package/src/query/index.php +3 -2
  272. package/src/query/style.scss +0 -11
  273. package/src/search/index.php +0 -4
  274. package/src/style.scss +1 -0
  275. package/src/template-part/block.json +2 -1
  276. package/src/template-part/index.php +4 -7
  277. package/src/verse/test/edit.native.js +37 -0
@@ -0,0 +1,86 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { __ } from '@wordpress/i18n';
5
+ /**
6
+ * Internal dependencies
7
+ */
8
+ import { formSubmissionNotificationSuccess, formSubmissionNotificationError } from './utils.js';
9
+ const variations = [{
10
+ name: 'comment-form',
11
+ title: __('Experimental Comment form'),
12
+ description: __('A comment form for posts and pages.'),
13
+ attributes: {
14
+ submissionMethod: 'custom',
15
+ action: '{SITE_URL}/wp-comments-post.php',
16
+ method: 'post',
17
+ anchor: 'comment-form'
18
+ },
19
+ isDefault: false,
20
+ innerBlocks: [['core/form-input', {
21
+ type: 'text',
22
+ name: 'author',
23
+ label: __('Name'),
24
+ required: true,
25
+ visibilityPermissions: 'logged-out'
26
+ }], ['core/form-input', {
27
+ type: 'email',
28
+ name: 'email',
29
+ label: __('Email'),
30
+ required: true,
31
+ visibilityPermissions: 'logged-out'
32
+ }], ['core/form-input', {
33
+ type: 'textarea',
34
+ name: 'comment',
35
+ label: __('Comment'),
36
+ required: true,
37
+ visibilityPermissions: 'all'
38
+ }], ['core/form-submit-button', {}]],
39
+ scope: ['inserter', 'transform'],
40
+ isActive: blockAttributes => !blockAttributes?.type || blockAttributes?.type === 'text'
41
+ }, {
42
+ name: 'wp-privacy-form',
43
+ title: __('Experimental privacy request form'),
44
+ keywords: ['GDPR'],
45
+ description: __('A form torequest data exports and/or deletion.'),
46
+ attributes: {
47
+ submissionMethod: 'custom',
48
+ action: '',
49
+ method: 'post',
50
+ anchor: 'gdpr-form'
51
+ },
52
+ isDefault: false,
53
+ innerBlocks: [formSubmissionNotificationSuccess, formSubmissionNotificationError, ['core/paragraph', {
54
+ content: __('To request an export or deletion of your personal data on this site, please fill-in the form below. You can define the type of request you wish to perform, and your email address. Once the form is submitted, you will receive a confirmation email with instructions on the next steps.')
55
+ }], ['core/form-input', {
56
+ type: 'email',
57
+ name: 'email',
58
+ label: __('Enter your email address.'),
59
+ required: true,
60
+ visibilityPermissions: 'all'
61
+ }], ['core/form-input', {
62
+ type: 'checkbox',
63
+ name: 'export_personal_data',
64
+ label: __('Request data export'),
65
+ required: false,
66
+ visibilityPermissions: 'all'
67
+ }], ['core/form-input', {
68
+ type: 'checkbox',
69
+ name: 'remove_personal_data',
70
+ label: __('Request data deletion'),
71
+ required: false,
72
+ visibilityPermissions: 'all'
73
+ }], ['core/form-submit-button', {}], ['core/form-input', {
74
+ type: 'hidden',
75
+ name: 'wp-action',
76
+ value: 'wp_privacy_send_request'
77
+ }], ['core/form-input', {
78
+ type: 'hidden',
79
+ name: 'wp-privacy-request',
80
+ value: '1'
81
+ }]],
82
+ scope: ['inserter', 'transform'],
83
+ isActive: blockAttributes => !blockAttributes?.type || blockAttributes?.type === 'text'
84
+ }];
85
+ export default variations;
86
+ //# sourceMappingURL=variations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["__","formSubmissionNotificationSuccess","formSubmissionNotificationError","variations","name","title","description","attributes","submissionMethod","action","method","anchor","isDefault","innerBlocks","type","label","required","visibilityPermissions","scope","isActive","blockAttributes","keywords","content","value"],"sources":["@wordpress/block-library/src/form/variations.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n/**\n * Internal dependencies\n */\nimport {\n\tformSubmissionNotificationSuccess,\n\tformSubmissionNotificationError,\n} from './utils.js';\n\nconst variations = [\n\t{\n\t\tname: 'comment-form',\n\t\ttitle: __( 'Experimental Comment form' ),\n\t\tdescription: __( 'A comment form for posts and pages.' ),\n\t\tattributes: {\n\t\t\tsubmissionMethod: 'custom',\n\t\t\taction: '{SITE_URL}/wp-comments-post.php',\n\t\t\tmethod: 'post',\n\t\t\tanchor: 'comment-form',\n\t\t},\n\t\tisDefault: false,\n\t\tinnerBlocks: [\n\t\t\t[\n\t\t\t\t'core/form-input',\n\t\t\t\t{\n\t\t\t\t\ttype: 'text',\n\t\t\t\t\tname: 'author',\n\t\t\t\t\tlabel: __( 'Name' ),\n\t\t\t\t\trequired: true,\n\t\t\t\t\tvisibilityPermissions: 'logged-out',\n\t\t\t\t},\n\t\t\t],\n\t\t\t[\n\t\t\t\t'core/form-input',\n\t\t\t\t{\n\t\t\t\t\ttype: 'email',\n\t\t\t\t\tname: 'email',\n\t\t\t\t\tlabel: __( 'Email' ),\n\t\t\t\t\trequired: true,\n\t\t\t\t\tvisibilityPermissions: 'logged-out',\n\t\t\t\t},\n\t\t\t],\n\t\t\t[\n\t\t\t\t'core/form-input',\n\t\t\t\t{\n\t\t\t\t\ttype: 'textarea',\n\t\t\t\t\tname: 'comment',\n\t\t\t\t\tlabel: __( 'Comment' ),\n\t\t\t\t\trequired: true,\n\t\t\t\t\tvisibilityPermissions: 'all',\n\t\t\t\t},\n\t\t\t],\n\t\t\t[ 'core/form-submit-button', {} ],\n\t\t],\n\t\tscope: [ 'inserter', 'transform' ],\n\t\tisActive: ( blockAttributes ) =>\n\t\t\t! blockAttributes?.type || blockAttributes?.type === 'text',\n\t},\n\t{\n\t\tname: 'wp-privacy-form',\n\t\ttitle: __( 'Experimental privacy request form' ),\n\t\tkeywords: [ 'GDPR' ],\n\t\tdescription: __( 'A form torequest data exports and/or deletion.' ),\n\t\tattributes: {\n\t\t\tsubmissionMethod: 'custom',\n\t\t\taction: '',\n\t\t\tmethod: 'post',\n\t\t\tanchor: 'gdpr-form',\n\t\t},\n\t\tisDefault: false,\n\t\tinnerBlocks: [\n\t\t\tformSubmissionNotificationSuccess,\n\t\t\tformSubmissionNotificationError,\n\t\t\t[\n\t\t\t\t'core/paragraph',\n\t\t\t\t{\n\t\t\t\t\tcontent: __(\n\t\t\t\t\t\t'To request an export or deletion of your personal data on this site, please fill-in the form below. You can define the type of request you wish to perform, and your email address. Once the form is submitted, you will receive a confirmation email with instructions on the next steps.'\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t],\n\t\t\t[\n\t\t\t\t'core/form-input',\n\t\t\t\t{\n\t\t\t\t\ttype: 'email',\n\t\t\t\t\tname: 'email',\n\t\t\t\t\tlabel: __( 'Enter your email address.' ),\n\t\t\t\t\trequired: true,\n\t\t\t\t\tvisibilityPermissions: 'all',\n\t\t\t\t},\n\t\t\t],\n\t\t\t[\n\t\t\t\t'core/form-input',\n\t\t\t\t{\n\t\t\t\t\ttype: 'checkbox',\n\t\t\t\t\tname: 'export_personal_data',\n\t\t\t\t\tlabel: __( 'Request data export' ),\n\t\t\t\t\trequired: false,\n\t\t\t\t\tvisibilityPermissions: 'all',\n\t\t\t\t},\n\t\t\t],\n\t\t\t[\n\t\t\t\t'core/form-input',\n\t\t\t\t{\n\t\t\t\t\ttype: 'checkbox',\n\t\t\t\t\tname: 'remove_personal_data',\n\t\t\t\t\tlabel: __( 'Request data deletion' ),\n\t\t\t\t\trequired: false,\n\t\t\t\t\tvisibilityPermissions: 'all',\n\t\t\t\t},\n\t\t\t],\n\t\t\t[ 'core/form-submit-button', {} ],\n\t\t\t[\n\t\t\t\t'core/form-input',\n\t\t\t\t{\n\t\t\t\t\ttype: 'hidden',\n\t\t\t\t\tname: 'wp-action',\n\t\t\t\t\tvalue: 'wp_privacy_send_request',\n\t\t\t\t},\n\t\t\t],\n\t\t\t[\n\t\t\t\t'core/form-input',\n\t\t\t\t{\n\t\t\t\t\ttype: 'hidden',\n\t\t\t\t\tname: 'wp-privacy-request',\n\t\t\t\t\tvalue: '1',\n\t\t\t\t},\n\t\t\t],\n\t\t],\n\t\tscope: [ 'inserter', 'transform' ],\n\t\tisActive: ( blockAttributes ) =>\n\t\t\t! blockAttributes?.type || blockAttributes?.type === 'text',\n\t},\n];\n\nexport default variations;\n"],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ // eslint-disable-next-line eslint-comments/disable-enable-pair
2
+ /* eslint-disable no-undef */
3
+ document.querySelectorAll('form.wp-block-form').forEach(function (form) {
4
+ // Bail If the form is not using the mailto: action.
5
+ if (!form.action || !form.action.startsWith('mailto:')) {
6
+ return;
7
+ }
8
+ const redirectNotification = status => {
9
+ const urlParams = new URLSearchParams(window.location.search);
10
+ urlParams.append('wp-form-result', status);
11
+ window.location.search = urlParams.toString();
12
+ };
13
+
14
+ // Add an event listener for the form submission.
15
+ form.addEventListener('submit', async function (event) {
16
+ event.preventDefault();
17
+ // Get the form data and merge it with the form action and nonce.
18
+ const formData = Object.fromEntries(new FormData(form).entries());
19
+ formData.formAction = form.action;
20
+ formData._ajax_nonce = wpBlockFormSettings.nonce;
21
+ formData.action = wpBlockFormSettings.action;
22
+ try {
23
+ const response = await fetch(wpBlockFormSettings.ajaxUrl, {
24
+ method: 'POST',
25
+ headers: {
26
+ 'Content-Type': 'application/x-www-form-urlencoded'
27
+ },
28
+ body: new URLSearchParams(formData).toString()
29
+ });
30
+ if (response.ok) {
31
+ redirectNotification('success');
32
+ } else {
33
+ redirectNotification('error');
34
+ }
35
+ } catch (error) {
36
+ redirectNotification('error');
37
+ }
38
+ });
39
+ });
40
+ //# sourceMappingURL=view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["document","querySelectorAll","forEach","form","action","startsWith","redirectNotification","status","urlParams","URLSearchParams","window","location","search","append","toString","addEventListener","event","preventDefault","formData","Object","fromEntries","FormData","entries","formAction","_ajax_nonce","wpBlockFormSettings","nonce","response","fetch","ajaxUrl","method","headers","body","ok","error"],"sources":["@wordpress/block-library/src/form/view.js"],"sourcesContent":["// eslint-disable-next-line eslint-comments/disable-enable-pair\n/* eslint-disable no-undef */\ndocument.querySelectorAll( 'form.wp-block-form' ).forEach( function ( form ) {\n\t// Bail If the form is not using the mailto: action.\n\tif ( ! form.action || ! form.action.startsWith( 'mailto:' ) ) {\n\t\treturn;\n\t}\n\n\tconst redirectNotification = ( status ) => {\n\t\tconst urlParams = new URLSearchParams( window.location.search );\n\t\turlParams.append( 'wp-form-result', status );\n\t\twindow.location.search = urlParams.toString();\n\t};\n\n\t// Add an event listener for the form submission.\n\tform.addEventListener( 'submit', async function ( event ) {\n\t\tevent.preventDefault();\n\t\t// Get the form data and merge it with the form action and nonce.\n\t\tconst formData = Object.fromEntries( new FormData( form ).entries() );\n\t\tformData.formAction = form.action;\n\t\tformData._ajax_nonce = wpBlockFormSettings.nonce;\n\t\tformData.action = wpBlockFormSettings.action;\n\n\t\ttry {\n\t\t\tconst response = await fetch( wpBlockFormSettings.ajaxUrl, {\n\t\t\t\tmethod: 'POST',\n\t\t\t\theaders: {\n\t\t\t\t\t'Content-Type': 'application/x-www-form-urlencoded',\n\t\t\t\t},\n\t\t\t\tbody: new URLSearchParams( formData ).toString(),\n\t\t\t} );\n\t\t\tif ( response.ok ) {\n\t\t\t\tredirectNotification( 'success' );\n\t\t\t} else {\n\t\t\t\tredirectNotification( 'error' );\n\t\t\t}\n\t\t} catch ( error ) {\n\t\t\tredirectNotification( 'error' );\n\t\t}\n\t} );\n} );\n"],"mappings":"AAAA;AACA;AACAA,QAAQ,CAACC,gBAAgB,CAAE,oBAAqB,CAAC,CAACC,OAAO,CAAE,UAAWC,IAAI,EAAG;EAC5E;EACA,IAAK,CAAEA,IAAI,CAACC,MAAM,IAAI,CAAED,IAAI,CAACC,MAAM,CAACC,UAAU,CAAE,SAAU,CAAC,EAAG;IAC7D;EACD;EAEA,MAAMC,oBAAoB,GAAKC,MAAM,IAAM;IAC1C,MAAMC,SAAS,GAAG,IAAIC,eAAe,CAAEC,MAAM,CAACC,QAAQ,CAACC,MAAO,CAAC;IAC/DJ,SAAS,CAACK,MAAM,CAAE,gBAAgB,EAAEN,MAAO,CAAC;IAC5CG,MAAM,CAACC,QAAQ,CAACC,MAAM,GAAGJ,SAAS,CAACM,QAAQ,CAAC,CAAC;EAC9C,CAAC;;EAED;EACAX,IAAI,CAACY,gBAAgB,CAAE,QAAQ,EAAE,gBAAiBC,KAAK,EAAG;IACzDA,KAAK,CAACC,cAAc,CAAC,CAAC;IACtB;IACA,MAAMC,QAAQ,GAAGC,MAAM,CAACC,WAAW,CAAE,IAAIC,QAAQ,CAAElB,IAAK,CAAC,CAACmB,OAAO,CAAC,CAAE,CAAC;IACrEJ,QAAQ,CAACK,UAAU,GAAGpB,IAAI,CAACC,MAAM;IACjCc,QAAQ,CAACM,WAAW,GAAGC,mBAAmB,CAACC,KAAK;IAChDR,QAAQ,CAACd,MAAM,GAAGqB,mBAAmB,CAACrB,MAAM;IAE5C,IAAI;MACH,MAAMuB,QAAQ,GAAG,MAAMC,KAAK,CAAEH,mBAAmB,CAACI,OAAO,EAAE;QAC1DC,MAAM,EAAE,MAAM;QACdC,OAAO,EAAE;UACR,cAAc,EAAE;QACjB,CAAC;QACDC,IAAI,EAAE,IAAIvB,eAAe,CAAES,QAAS,CAAC,CAACJ,QAAQ,CAAC;MAChD,CAAE,CAAC;MACH,IAAKa,QAAQ,CAACM,EAAE,EAAG;QAClB3B,oBAAoB,CAAE,SAAU,CAAC;MAClC,CAAC,MAAM;QACNA,oBAAoB,CAAE,OAAQ,CAAC;MAChC;IACD,CAAC,CAAC,OAAQ4B,KAAK,EAAG;MACjB5B,oBAAoB,CAAE,OAAQ,CAAC;IAChC;EACD,CAAE,CAAC;AACJ,CAAE,CAAC"}
@@ -0,0 +1,115 @@
1
+ import { createElement, Fragment } from "react";
2
+ /**
3
+ * External dependencies
4
+ */
5
+ import classNames from 'classnames';
6
+
7
+ /**
8
+ * WordPress dependencies
9
+ */
10
+ import { __ } from '@wordpress/i18n';
11
+ import { InspectorControls, RichText, useBlockProps, __experimentalUseBorderProps as useBorderProps, __experimentalUseColorProps as useColorProps } from '@wordpress/block-editor';
12
+ import { PanelBody, TextControl, CheckboxControl } from '@wordpress/components';
13
+ import { useRef } from '@wordpress/element';
14
+ function InputFieldBlock({
15
+ attributes,
16
+ setAttributes,
17
+ className
18
+ }) {
19
+ const {
20
+ type,
21
+ name,
22
+ label,
23
+ inlineLabel,
24
+ required,
25
+ placeholder,
26
+ value
27
+ } = attributes;
28
+ const blockProps = useBlockProps();
29
+ const ref = useRef();
30
+ const TagName = type === 'textarea' ? 'textarea' : 'input';
31
+ const borderProps = useBorderProps(attributes);
32
+ const colorProps = useColorProps(attributes);
33
+ if (ref.current) {
34
+ ref.current.focus();
35
+ }
36
+ const controls = createElement(Fragment, null, 'hidden' !== type && createElement(InspectorControls, null, createElement(PanelBody, {
37
+ title: __('Input settings')
38
+ }, 'checkbox' !== type && createElement(CheckboxControl, {
39
+ label: __('Inline label'),
40
+ checked: inlineLabel,
41
+ onChange: newVal => {
42
+ setAttributes({
43
+ inlineLabel: newVal
44
+ });
45
+ }
46
+ }), createElement(CheckboxControl, {
47
+ label: __('Required'),
48
+ checked: required,
49
+ onChange: newVal => {
50
+ setAttributes({
51
+ required: newVal
52
+ });
53
+ }
54
+ }))), createElement(InspectorControls, {
55
+ __experimentalGroup: "advanced"
56
+ }, createElement(TextControl, {
57
+ autoComplete: "off",
58
+ label: __('Name'),
59
+ value: name,
60
+ onChange: newVal => {
61
+ setAttributes({
62
+ name: newVal
63
+ });
64
+ },
65
+ help: __('Affects the "name" atribute of the input element, and is used as a name for the form submission results.')
66
+ })));
67
+ if ('hidden' === type) {
68
+ return createElement(Fragment, null, controls, createElement("input", {
69
+ type: "hidden",
70
+ className: classNames(className, 'wp-block-form-input__input', colorProps.className, borderProps.className),
71
+ "aria-label": __('Value'),
72
+ value: value,
73
+ onChange: event => setAttributes({
74
+ value: event.target.value
75
+ })
76
+ }));
77
+ }
78
+ return createElement("div", {
79
+ ...blockProps
80
+ }, controls, createElement("span", {
81
+ className: classNames('wp-block-form-input__label', {
82
+ 'is-label-inline': inlineLabel || 'checkbox' === type
83
+ })
84
+ }, createElement(RichText, {
85
+ tagName: "span",
86
+ className: "wp-block-form-input__label-content",
87
+ value: label,
88
+ onChange: newLabel => setAttributes({
89
+ label: newLabel
90
+ }),
91
+ "aria-label": label ? __('Label') : __('Empty label'),
92
+ "data-empty": label ? false : true,
93
+ placeholder: __('Type the label for this input')
94
+ }), createElement(TagName, {
95
+ type: 'textarea' === type ? undefined : type,
96
+ className: classNames(className, 'wp-block-form-input__input', colorProps.className, borderProps.className),
97
+ "aria-label": __('Optional placeholder text')
98
+ // We hide the placeholder field's placeholder when there is a value. This
99
+ // stops screen readers from reading the placeholder field's placeholder
100
+ // which is confusing.
101
+ ,
102
+ placeholder: placeholder ? undefined : __('Optional placeholder…'),
103
+ value: placeholder,
104
+ onChange: event => setAttributes({
105
+ placeholder: event.target.value
106
+ }),
107
+ "aria-required": required,
108
+ style: {
109
+ ...borderProps.style,
110
+ ...colorProps.style
111
+ }
112
+ })));
113
+ }
114
+ export default InputFieldBlock;
115
+ //# sourceMappingURL=edit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["classNames","__","InspectorControls","RichText","useBlockProps","__experimentalUseBorderProps","useBorderProps","__experimentalUseColorProps","useColorProps","PanelBody","TextControl","CheckboxControl","useRef","InputFieldBlock","attributes","setAttributes","className","type","name","label","inlineLabel","required","placeholder","value","blockProps","ref","TagName","borderProps","colorProps","current","focus","controls","createElement","Fragment","title","checked","onChange","newVal","__experimentalGroup","autoComplete","help","event","target","tagName","newLabel","undefined","style"],"sources":["@wordpress/block-library/src/form-input/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classNames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tInspectorControls,\n\tRichText,\n\tuseBlockProps,\n\t__experimentalUseBorderProps as useBorderProps,\n\t__experimentalUseColorProps as useColorProps,\n} from '@wordpress/block-editor';\nimport { PanelBody, TextControl, CheckboxControl } from '@wordpress/components';\n\nimport { useRef } from '@wordpress/element';\n\nfunction InputFieldBlock( { attributes, setAttributes, className } ) {\n\tconst { type, name, label, inlineLabel, required, placeholder, value } =\n\t\tattributes;\n\tconst blockProps = useBlockProps();\n\tconst ref = useRef();\n\tconst TagName = type === 'textarea' ? 'textarea' : 'input';\n\n\tconst borderProps = useBorderProps( attributes );\n\tconst colorProps = useColorProps( attributes );\n\tif ( ref.current ) {\n\t\tref.current.focus();\n\t}\n\n\tconst controls = (\n\t\t<>\n\t\t\t{ 'hidden' !== type && (\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<PanelBody title={ __( 'Input settings' ) }>\n\t\t\t\t\t\t{ 'checkbox' !== type && (\n\t\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Inline label' ) }\n\t\t\t\t\t\t\t\tchecked={ inlineLabel }\n\t\t\t\t\t\t\t\tonChange={ ( newVal ) => {\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tinlineLabel: newVal,\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/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\tlabel={ __( 'Required' ) }\n\t\t\t\t\t\t\tchecked={ required }\n\t\t\t\t\t\t\tonChange={ ( newVal ) => {\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\trequired: newVal,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</PanelBody>\n\t\t\t\t</InspectorControls>\n\t\t\t) }\n\t\t\t<InspectorControls __experimentalGroup=\"advanced\">\n\t\t\t\t<TextControl\n\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\tvalue={ name }\n\t\t\t\t\tonChange={ ( newVal ) => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tname: newVal,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t'Affects the \"name\" atribute of the input element, and is used as a name for the form submission results.'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n\n\tif ( 'hidden' === type ) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ controls }\n\t\t\t\t<input\n\t\t\t\t\ttype=\"hidden\"\n\t\t\t\t\tclassName={ classNames(\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t'wp-block-form-input__input',\n\t\t\t\t\t\tcolorProps.className,\n\t\t\t\t\t\tborderProps.className\n\t\t\t\t\t) }\n\t\t\t\t\taria-label={ __( 'Value' ) }\n\t\t\t\t\tvalue={ value }\n\t\t\t\t\tonChange={ ( event ) =>\n\t\t\t\t\t\tsetAttributes( { value: event.target.value } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t{ controls }\n\t\t\t<span\n\t\t\t\tclassName={ classNames( 'wp-block-form-input__label', {\n\t\t\t\t\t'is-label-inline': inlineLabel || 'checkbox' === type,\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t<RichText\n\t\t\t\t\ttagName=\"span\"\n\t\t\t\t\tclassName=\"wp-block-form-input__label-content\"\n\t\t\t\t\tvalue={ label }\n\t\t\t\t\tonChange={ ( newLabel ) =>\n\t\t\t\t\t\tsetAttributes( { label: newLabel } )\n\t\t\t\t\t}\n\t\t\t\t\taria-label={ label ? __( 'Label' ) : __( 'Empty label' ) }\n\t\t\t\t\tdata-empty={ label ? false : true }\n\t\t\t\t\tplaceholder={ __( 'Type the label for this input' ) }\n\t\t\t\t/>\n\t\t\t\t<TagName\n\t\t\t\t\ttype={ 'textarea' === type ? undefined : type }\n\t\t\t\t\tclassName={ classNames(\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t'wp-block-form-input__input',\n\t\t\t\t\t\tcolorProps.className,\n\t\t\t\t\t\tborderProps.className\n\t\t\t\t\t) }\n\t\t\t\t\taria-label={ __( 'Optional placeholder text' ) }\n\t\t\t\t\t// We hide the placeholder field's placeholder when there is a value. This\n\t\t\t\t\t// stops screen readers from reading the placeholder field's placeholder\n\t\t\t\t\t// which is confusing.\n\t\t\t\t\tplaceholder={\n\t\t\t\t\t\tplaceholder ? undefined : __( 'Optional placeholder…' )\n\t\t\t\t\t}\n\t\t\t\t\tvalue={ placeholder }\n\t\t\t\t\tonChange={ ( event ) =>\n\t\t\t\t\t\tsetAttributes( { placeholder: event.target.value } )\n\t\t\t\t\t}\n\t\t\t\t\taria-required={ required }\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t...borderProps.style,\n\t\t\t\t\t\t...colorProps.style,\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</span>\n\t\t</div>\n\t);\n}\n\nexport default InputFieldBlock;\n"],"mappings":"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"}
@@ -0,0 +1,95 @@
1
+ /**
2
+ * Internal dependencies
3
+ */
4
+ import initBlock from '../utils/init-block';
5
+ import edit from './edit';
6
+ const metadata = {
7
+ $schema: "https://schemas.wp.org/trunk/block.json",
8
+ apiVersion: 3,
9
+ __experimental: true,
10
+ name: "core/form-input",
11
+ title: "Input field",
12
+ category: "common",
13
+ parent: ["core/form"],
14
+ description: "The basic building block for forms.",
15
+ keywords: ["input", "form"],
16
+ textdomain: "default",
17
+ icon: "forms",
18
+ attributes: {
19
+ type: {
20
+ type: "string",
21
+ "default": "text"
22
+ },
23
+ name: {
24
+ type: "string"
25
+ },
26
+ label: {
27
+ type: "string",
28
+ "default": "Label",
29
+ selector: ".wp-block-form-input__label-content",
30
+ source: "html",
31
+ __experimentalRole: "content"
32
+ },
33
+ inlineLabel: {
34
+ type: "boolean",
35
+ "default": false
36
+ },
37
+ required: {
38
+ type: "boolean",
39
+ "default": false,
40
+ selector: ".wp-block-form-input__input",
41
+ source: "attribute",
42
+ attribute: "required"
43
+ },
44
+ placeholder: {
45
+ type: "string",
46
+ selector: ".wp-block-form-input__input",
47
+ source: "attribute",
48
+ attribute: "placeholder",
49
+ __experimentalRole: "content"
50
+ },
51
+ value: {
52
+ type: "string",
53
+ "default": "",
54
+ selector: "input",
55
+ source: "attribute",
56
+ attribute: "value"
57
+ },
58
+ visibilityPermissions: {
59
+ type: "string",
60
+ "default": "all"
61
+ }
62
+ },
63
+ supports: {
64
+ anchor: true,
65
+ reusable: false,
66
+ spacing: {
67
+ margin: ["top", "bottom"]
68
+ },
69
+ __experimentalBorder: {
70
+ radius: true,
71
+ __experimentalSkipSerialization: true,
72
+ __experimentalDefaultControls: {
73
+ radius: true
74
+ }
75
+ }
76
+ },
77
+ style: ["wp-block-form-input"]
78
+ };
79
+ import save from './save';
80
+ import variations from './variations';
81
+ const {
82
+ name
83
+ } = metadata;
84
+ export { metadata, name };
85
+ export const settings = {
86
+ edit,
87
+ save,
88
+ variations
89
+ };
90
+ export const init = () => initBlock({
91
+ name,
92
+ metadata,
93
+ settings
94
+ });
95
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["initBlock","edit","metadata","$schema","apiVersion","__experimental","name","title","category","parent","description","keywords","textdomain","icon","attributes","type","label","selector","source","__experimentalRole","inlineLabel","required","attribute","placeholder","value","visibilityPermissions","supports","anchor","reusable","spacing","margin","__experimentalBorder","radius","__experimentalSkipSerialization","__experimentalDefaultControls","style","save","variations","settings","init"],"sources":["@wordpress/block-library/src/form-input/index.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport variations from './variations';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\tedit,\n\tsave,\n\tvariations,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,SAAS,MAAM,qBAAqB;AAC3C,OAAOC,IAAI,MAAM,QAAQ;AAAC,MAAAC,QAAA;EAAAC,OAAA;EAAAC,UAAA;EAAAC,cAAA;EAAAC,IAAA;EAAAC,KAAA;EAAAC,QAAA;EAAAC,MAAA;EAAAC,WAAA;EAAAC,QAAA;EAAAC,UAAA;EAAAC,IAAA;EAAAC,UAAA;IAAAC,IAAA;MAAAA,IAAA;MAAA;IAAA;IAAAT,IAAA;MAAAS,IAAA;IAAA;IAAAC,KAAA;MAAAD,IAAA;MAAA;MAAAE,QAAA;MAAAC,MAAA;MAAAC,kBAAA;IAAA;IAAAC,WAAA;MAAAL,IAAA;MAAA;IAAA;IAAAM,QAAA;MAAAN,IAAA;MAAA;MAAAE,QAAA;MAAAC,MAAA;MAAAI,SAAA;IAAA;IAAAC,WAAA;MAAAR,IAAA;MAAAE,QAAA;MAAAC,MAAA;MAAAI,SAAA;MAAAH,kBAAA;IAAA;IAAAK,KAAA;MAAAT,IAAA;MAAA;MAAAE,QAAA;MAAAC,MAAA;MAAAI,SAAA;IAAA;IAAAG,qBAAA;MAAAV,IAAA;MAAA;IAAA;EAAA;EAAAW,QAAA;IAAAC,MAAA;IAAAC,QAAA;IAAAC,OAAA;MAAAC,MAAA;IAAA;IAAAC,oBAAA;MAAAC,MAAA;MAAAC,+BAAA;MAAAC,6BAAA;QAAAF,MAAA;MAAA;IAAA;EAAA;EAAAG,KAAA;AAAA;AAE1B,OAAOC,IAAI,MAAM,QAAQ;AACzB,OAAOC,UAAU,MAAM,cAAc;AAErC,MAAM;EAAE/B;AAAK,CAAC,GAAGJ,QAAQ;AAEzB,SAASA,QAAQ,EAAEI,IAAI;AAEvB,OAAO,MAAMgC,QAAQ,GAAG;EACvBrC,IAAI;EACJmC,IAAI;EACJC;AACD,CAAC;AAED,OAAO,MAAME,IAAI,GAAGA,CAAA,KAAMvC,SAAS,CAAE;EAAEM,IAAI;EAAEJ,QAAQ;EAAEoC;AAAS,CAAE,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Internal dependencies
3
+ */
4
+ import { init } from './';
5
+ export default init();
6
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["init"],"sources":["@wordpress/block-library/src/form-input/init.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport { init } from './';\n\nexport default init();\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,IAAI,QAAQ,IAAI;AAEzB,eAAeA,IAAI,CAAC,CAAC"}
@@ -0,0 +1,80 @@
1
+ import { createElement } from "react";
2
+ /**
3
+ * External dependencies
4
+ */
5
+ import classNames from 'classnames';
6
+ import removeAccents from 'remove-accents';
7
+
8
+ /**
9
+ * WordPress dependencies
10
+ */
11
+ import { RichText, __experimentalGetBorderClassesAndStyles as getBorderClassesAndStyles, __experimentalGetColorClassesAndStyles as getColorClassesAndStyles } from '@wordpress/block-editor';
12
+
13
+ /**
14
+ * Get the name attribute from a content string.
15
+ *
16
+ * @param {string} content The block content.
17
+ *
18
+ * @return {string} Returns the slug.
19
+ */
20
+ const getNameFromLabel = content => {
21
+ const dummyElement = document.createElement('div');
22
+ dummyElement.innerHTML = content;
23
+ // Get the slug.
24
+ return removeAccents(dummyElement.innerText)
25
+ // Convert anything that's not a letter or number to a hyphen.
26
+ .replace(/[^\p{L}\p{N}]+/gu, '-')
27
+ // Convert to lowercase
28
+ .toLowerCase()
29
+ // Remove any remaining leading or trailing hyphens.
30
+ .replace(/(^-+)|(-+$)/g, '');
31
+ };
32
+ export default function save({
33
+ attributes
34
+ }) {
35
+ const {
36
+ type,
37
+ name,
38
+ label,
39
+ inlineLabel,
40
+ required,
41
+ placeholder,
42
+ value
43
+ } = attributes;
44
+ const borderProps = getBorderClassesAndStyles(attributes);
45
+ const colorProps = getColorClassesAndStyles(attributes);
46
+ const inputStyle = {
47
+ ...borderProps.style,
48
+ ...colorProps.style
49
+ };
50
+ const inputClasses = classNames('wp-block-form-input__input', colorProps.className, borderProps.className);
51
+ const TagName = type === 'textarea' ? 'textarea' : 'input';
52
+ if ('hidden' === type) {
53
+ return createElement("input", {
54
+ type: type,
55
+ name: name,
56
+ value: value
57
+ });
58
+ }
59
+
60
+ /* eslint-disable jsx-a11y/label-has-associated-control */
61
+ return createElement("label", {
62
+ className: classNames('wp-block-form-input__label', {
63
+ 'is-label-inline': inlineLabel
64
+ })
65
+ }, createElement("span", {
66
+ className: "wp-block-form-input__label-content"
67
+ }, createElement(RichText.Content, {
68
+ value: label
69
+ })), createElement(TagName, {
70
+ className: inputClasses,
71
+ type: 'textarea' === type ? undefined : type,
72
+ name: name || getNameFromLabel(label),
73
+ required: required,
74
+ "aria-required": required,
75
+ placeholder: placeholder || undefined,
76
+ style: inputStyle
77
+ }));
78
+ /* eslint-enable jsx-a11y/label-has-associated-control */
79
+ }
80
+ //# sourceMappingURL=save.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["classNames","removeAccents","RichText","__experimentalGetBorderClassesAndStyles","getBorderClassesAndStyles","__experimentalGetColorClassesAndStyles","getColorClassesAndStyles","getNameFromLabel","content","dummyElement","document","createElement","innerHTML","innerText","replace","toLowerCase","save","attributes","type","name","label","inlineLabel","required","placeholder","value","borderProps","colorProps","inputStyle","style","inputClasses","className","TagName","Content","undefined"],"sources":["@wordpress/block-library/src/form-input/save.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classNames from 'classnames';\nimport removeAccents from 'remove-accents';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\t__experimentalGetBorderClassesAndStyles as getBorderClassesAndStyles,\n\t__experimentalGetColorClassesAndStyles as getColorClassesAndStyles,\n} from '@wordpress/block-editor';\n\n/**\n * Get the name attribute from a content string.\n *\n * @param {string} content The block content.\n *\n * @return {string} Returns the slug.\n */\nconst getNameFromLabel = ( content ) => {\n\tconst dummyElement = document.createElement( 'div' );\n\tdummyElement.innerHTML = content;\n\t// Get the slug.\n\treturn (\n\t\tremoveAccents( dummyElement.innerText )\n\t\t\t// Convert anything that's not a letter or number to a hyphen.\n\t\t\t.replace( /[^\\p{L}\\p{N}]+/gu, '-' )\n\t\t\t// Convert to lowercase\n\t\t\t.toLowerCase()\n\t\t\t// Remove any remaining leading or trailing hyphens.\n\t\t\t.replace( /(^-+)|(-+$)/g, '' )\n\t);\n};\n\nexport default function save( { attributes } ) {\n\tconst { type, name, label, inlineLabel, required, placeholder, value } =\n\t\tattributes;\n\n\tconst borderProps = getBorderClassesAndStyles( attributes );\n\tconst colorProps = getColorClassesAndStyles( attributes );\n\n\tconst inputStyle = {\n\t\t...borderProps.style,\n\t\t...colorProps.style,\n\t};\n\n\tconst inputClasses = classNames(\n\t\t'wp-block-form-input__input',\n\t\tcolorProps.className,\n\t\tborderProps.className\n\t);\n\tconst TagName = type === 'textarea' ? 'textarea' : 'input';\n\n\tif ( 'hidden' === type ) {\n\t\treturn <input type={ type } name={ name } value={ value } />;\n\t}\n\n\t/* eslint-disable jsx-a11y/label-has-associated-control */\n\treturn (\n\t\t<label\n\t\t\tclassName={ classNames( 'wp-block-form-input__label', {\n\t\t\t\t'is-label-inline': inlineLabel,\n\t\t\t} ) }\n\t\t>\n\t\t\t<span className=\"wp-block-form-input__label-content\">\n\t\t\t\t<RichText.Content value={ label } />\n\t\t\t</span>\n\t\t\t<TagName\n\t\t\t\tclassName={ inputClasses }\n\t\t\t\ttype={ 'textarea' === type ? undefined : type }\n\t\t\t\tname={ name || getNameFromLabel( label ) }\n\t\t\t\trequired={ required }\n\t\t\t\taria-required={ required }\n\t\t\t\tplaceholder={ placeholder || undefined }\n\t\t\t\tstyle={ inputStyle }\n\t\t\t/>\n\t\t</label>\n\t);\n\t/* eslint-enable jsx-a11y/label-has-associated-control */\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,OAAOA,UAAU,MAAM,YAAY;AACnC,OAAOC,aAAa,MAAM,gBAAgB;;AAE1C;AACA;AACA;AACA,SACCC,QAAQ,EACRC,uCAAuC,IAAIC,yBAAyB,EACpEC,sCAAsC,IAAIC,wBAAwB,QAC5D,yBAAyB;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,gBAAgB,GAAKC,OAAO,IAAM;EACvC,MAAMC,YAAY,GAAGC,QAAQ,CAACC,aAAa,CAAE,KAAM,CAAC;EACpDF,YAAY,CAACG,SAAS,GAAGJ,OAAO;EAChC;EACA,OACCP,aAAa,CAAEQ,YAAY,CAACI,SAAU;EACrC;EAAA,CACCC,OAAO,CAAE,kBAAkB,EAAE,GAAI;EAClC;EAAA,CACCC,WAAW,CAAC;EACb;EAAA,CACCD,OAAO,CAAE,cAAc,EAAE,EAAG,CAAC;AAEjC,CAAC;AAED,eAAe,SAASE,IAAIA,CAAE;EAAEC;AAAW,CAAC,EAAG;EAC9C,MAAM;IAAEC,IAAI;IAAEC,IAAI;IAAEC,KAAK;IAAEC,WAAW;IAAEC,QAAQ;IAAEC,WAAW;IAAEC;EAAM,CAAC,GACrEP,UAAU;EAEX,MAAMQ,WAAW,GAAGrB,yBAAyB,CAAEa,UAAW,CAAC;EAC3D,MAAMS,UAAU,GAAGpB,wBAAwB,CAAEW,UAAW,CAAC;EAEzD,MAAMU,UAAU,GAAG;IAClB,GAAGF,WAAW,CAACG,KAAK;IACpB,GAAGF,UAAU,CAACE;EACf,CAAC;EAED,MAAMC,YAAY,GAAG7B,UAAU,CAC9B,4BAA4B,EAC5B0B,UAAU,CAACI,SAAS,EACpBL,WAAW,CAACK,SACb,CAAC;EACD,MAAMC,OAAO,GAAGb,IAAI,KAAK,UAAU,GAAG,UAAU,GAAG,OAAO;EAE1D,IAAK,QAAQ,KAAKA,IAAI,EAAG;IACxB,OAAOP,aAAA;MAAOO,IAAI,EAAGA,IAAM;MAACC,IAAI,EAAGA,IAAM;MAACK,KAAK,EAAGA;IAAO,CAAE,CAAC;EAC7D;;EAEA;EACA,OACCb,aAAA;IACCmB,SAAS,EAAG9B,UAAU,CAAE,4BAA4B,EAAE;MACrD,iBAAiB,EAAEqB;IACpB,CAAE;EAAG,GAELV,aAAA;IAAMmB,SAAS,EAAC;EAAoC,GACnDnB,aAAA,CAACT,QAAQ,CAAC8B,OAAO;IAACR,KAAK,EAAGJ;EAAO,CAAE,CAC9B,CAAC,EACPT,aAAA,CAACoB,OAAO;IACPD,SAAS,EAAGD,YAAc;IAC1BX,IAAI,EAAG,UAAU,KAAKA,IAAI,GAAGe,SAAS,GAAGf,IAAM;IAC/CC,IAAI,EAAGA,IAAI,IAAIZ,gBAAgB,CAAEa,KAAM,CAAG;IAC1CE,QAAQ,EAAGA,QAAU;IACrB,iBAAgBA,QAAU;IAC1BC,WAAW,EAAGA,WAAW,IAAIU,SAAW;IACxCL,KAAK,EAAGD;EAAY,CACpB,CACK,CAAC;EAET;AACD"}
@@ -0,0 +1,85 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { __ } from '@wordpress/i18n';
5
+ const variations = [{
6
+ name: 'text',
7
+ title: __('Text input'),
8
+ icon: 'edit-page',
9
+ description: __('A generic text input.'),
10
+ attributes: {
11
+ type: 'text'
12
+ },
13
+ isDefault: true,
14
+ scope: ['inserter', 'transform'],
15
+ isActive: blockAttributes => !blockAttributes?.type || blockAttributes?.type === 'text'
16
+ }, {
17
+ name: 'textarea',
18
+ title: __('Textarea input'),
19
+ icon: 'testimonial',
20
+ description: __('A textarea input to allow entering multiple lines of text.'),
21
+ attributes: {
22
+ type: 'textarea'
23
+ },
24
+ isDefault: true,
25
+ scope: ['inserter', 'transform'],
26
+ isActive: blockAttributes => blockAttributes?.type === 'textarea'
27
+ }, {
28
+ name: 'checkbox',
29
+ title: __('Checkbox input'),
30
+ description: __('A simple checkbox input.'),
31
+ icon: 'forms',
32
+ attributes: {
33
+ type: 'checkbox',
34
+ inlineLabel: true
35
+ },
36
+ isDefault: true,
37
+ scope: ['inserter', 'transform'],
38
+ isActive: blockAttributes => blockAttributes?.type === 'checkbox'
39
+ }, {
40
+ name: 'email',
41
+ title: __('Email input'),
42
+ icon: 'email',
43
+ description: __('Used for email addresses.'),
44
+ attributes: {
45
+ type: 'email'
46
+ },
47
+ isDefault: true,
48
+ scope: ['inserter', 'transform'],
49
+ isActive: blockAttributes => blockAttributes?.type === 'email'
50
+ }, {
51
+ name: 'url',
52
+ title: __('URL input'),
53
+ icon: 'admin-site',
54
+ description: __('Used for URLs.'),
55
+ attributes: {
56
+ type: 'url'
57
+ },
58
+ isDefault: true,
59
+ scope: ['inserter', 'transform'],
60
+ isActive: blockAttributes => blockAttributes?.type === 'url'
61
+ }, {
62
+ name: 'tel',
63
+ title: __('Telephone input'),
64
+ icon: 'phone',
65
+ description: __('Used for phone numbers.'),
66
+ attributes: {
67
+ type: 'tel'
68
+ },
69
+ isDefault: true,
70
+ scope: ['inserter', 'transform'],
71
+ isActive: blockAttributes => blockAttributes?.type === 'tel'
72
+ }, {
73
+ name: 'number',
74
+ title: __('Number input'),
75
+ icon: 'edit-page',
76
+ description: __('A numeric input.'),
77
+ attributes: {
78
+ type: 'number'
79
+ },
80
+ isDefault: true,
81
+ scope: ['inserter', 'transform'],
82
+ isActive: blockAttributes => blockAttributes?.type === 'number'
83
+ }];
84
+ export default variations;
85
+ //# sourceMappingURL=variations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["__","variations","name","title","icon","description","attributes","type","isDefault","scope","isActive","blockAttributes","inlineLabel"],"sources":["@wordpress/block-library/src/form-input/variations.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\nconst variations = [\n\t{\n\t\tname: 'text',\n\t\ttitle: __( 'Text input' ),\n\t\ticon: 'edit-page',\n\t\tdescription: __( 'A generic text input.' ),\n\t\tattributes: { type: 'text' },\n\t\tisDefault: true,\n\t\tscope: [ 'inserter', 'transform' ],\n\t\tisActive: ( blockAttributes ) =>\n\t\t\t! blockAttributes?.type || blockAttributes?.type === 'text',\n\t},\n\t{\n\t\tname: 'textarea',\n\t\ttitle: __( 'Textarea input' ),\n\t\ticon: 'testimonial',\n\t\tdescription: __(\n\t\t\t'A textarea input to allow entering multiple lines of text.'\n\t\t),\n\t\tattributes: { type: 'textarea' },\n\t\tisDefault: true,\n\t\tscope: [ 'inserter', 'transform' ],\n\t\tisActive: ( blockAttributes ) => blockAttributes?.type === 'textarea',\n\t},\n\t{\n\t\tname: 'checkbox',\n\t\ttitle: __( 'Checkbox input' ),\n\t\tdescription: __( 'A simple checkbox input.' ),\n\t\ticon: 'forms',\n\t\tattributes: { type: 'checkbox', inlineLabel: true },\n\t\tisDefault: true,\n\t\tscope: [ 'inserter', 'transform' ],\n\t\tisActive: ( blockAttributes ) => blockAttributes?.type === 'checkbox',\n\t},\n\t{\n\t\tname: 'email',\n\t\ttitle: __( 'Email input' ),\n\t\ticon: 'email',\n\t\tdescription: __( 'Used for email addresses.' ),\n\t\tattributes: { type: 'email' },\n\t\tisDefault: true,\n\t\tscope: [ 'inserter', 'transform' ],\n\t\tisActive: ( blockAttributes ) => blockAttributes?.type === 'email',\n\t},\n\t{\n\t\tname: 'url',\n\t\ttitle: __( 'URL input' ),\n\t\ticon: 'admin-site',\n\t\tdescription: __( 'Used for URLs.' ),\n\t\tattributes: { type: 'url' },\n\t\tisDefault: true,\n\t\tscope: [ 'inserter', 'transform' ],\n\t\tisActive: ( blockAttributes ) => blockAttributes?.type === 'url',\n\t},\n\t{\n\t\tname: 'tel',\n\t\ttitle: __( 'Telephone input' ),\n\t\ticon: 'phone',\n\t\tdescription: __( 'Used for phone numbers.' ),\n\t\tattributes: { type: 'tel' },\n\t\tisDefault: true,\n\t\tscope: [ 'inserter', 'transform' ],\n\t\tisActive: ( blockAttributes ) => blockAttributes?.type === 'tel',\n\t},\n\t{\n\t\tname: 'number',\n\t\ttitle: __( 'Number input' ),\n\t\ticon: 'edit-page',\n\t\tdescription: __( 'A numeric input.' ),\n\t\tattributes: { type: 'number' },\n\t\tisDefault: true,\n\t\tscope: [ 'inserter', 'transform' ],\n\t\tisActive: ( blockAttributes ) => blockAttributes?.type === 'number',\n\t},\n];\n\nexport default variations;\n"],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ import { createElement } from "react";
2
+ /**
3
+ * WordPress dependencies
4
+ */
5
+ import { __ } from '@wordpress/i18n';
6
+ import { InnerBlocks, useBlockProps, useInnerBlocksProps, store as blockEditorStore } from '@wordpress/block-editor';
7
+ import { useSelect } from '@wordpress/data';
8
+
9
+ /**
10
+ * External dependencies
11
+ */
12
+ import classnames from 'classnames';
13
+ const TEMPLATE = [['core/paragraph', {
14
+ content: __("Enter the message you wish displayed for form submission error/success, and select the type of the message (success/error) from the block's options.")
15
+ }]];
16
+ const Edit = ({
17
+ attributes,
18
+ clientId
19
+ }) => {
20
+ const {
21
+ type
22
+ } = attributes;
23
+ const blockProps = useBlockProps({
24
+ className: classnames('wp-block-form-submission-notification', {
25
+ [`form-notification-type-${type}`]: type
26
+ })
27
+ });
28
+ const {
29
+ hasInnerBlocks
30
+ } = useSelect(select => {
31
+ const {
32
+ getBlock
33
+ } = select(blockEditorStore);
34
+ const block = getBlock(clientId);
35
+ return {
36
+ hasInnerBlocks: !!(block && block.innerBlocks.length)
37
+ };
38
+ }, [clientId]);
39
+ const innerBlocksProps = useInnerBlocksProps(blockProps, {
40
+ template: TEMPLATE,
41
+ renderAppender: hasInnerBlocks ? undefined : InnerBlocks.ButtonBlockAppender
42
+ });
43
+ return createElement("div", {
44
+ ...innerBlocksProps,
45
+ "data-message-success": __('Submission success notification'),
46
+ "data-message-error": __('Submission error notification')
47
+ });
48
+ };
49
+ export default Edit;
50
+ //# sourceMappingURL=edit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["__","InnerBlocks","useBlockProps","useInnerBlocksProps","store","blockEditorStore","useSelect","classnames","TEMPLATE","content","Edit","attributes","clientId","type","blockProps","className","hasInnerBlocks","select","getBlock","block","innerBlocks","length","innerBlocksProps","template","renderAppender","undefined","ButtonBlockAppender","createElement"],"sources":["@wordpress/block-library/src/form-submission-notification/edit.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tInnerBlocks,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\nconst TEMPLATE = [\n\t[\n\t\t'core/paragraph',\n\t\t{\n\t\t\tcontent: __(\n\t\t\t\t\"Enter the message you wish displayed for form submission error/success, and select the type of the message (success/error) from the block's options.\"\n\t\t\t),\n\t\t},\n\t],\n];\n\nconst Edit = ( { attributes, clientId } ) => {\n\tconst { type } = attributes;\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( 'wp-block-form-submission-notification', {\n\t\t\t[ `form-notification-type-${ type }` ]: type,\n\t\t} ),\n\t} );\n\n\tconst { hasInnerBlocks } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlock } = select( blockEditorStore );\n\t\t\tconst block = getBlock( clientId );\n\t\t\treturn {\n\t\t\t\thasInnerBlocks: !! ( block && block.innerBlocks.length ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\ttemplate: TEMPLATE,\n\t\trenderAppender: hasInnerBlocks\n\t\t\t? undefined\n\t\t\t: InnerBlocks.ButtonBlockAppender,\n\t} );\n\n\treturn (\n\t\t<div\n\t\t\t{ ...innerBlocksProps }\n\t\t\tdata-message-success={ __( 'Submission success notification' ) }\n\t\t\tdata-message-error={ __( 'Submission error notification' ) }\n\t\t/>\n\t);\n};\nexport default Edit;\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SACCC,WAAW,EACXC,aAAa,EACbC,mBAAmB,EACnBC,KAAK,IAAIC,gBAAgB,QACnB,yBAAyB;AAChC,SAASC,SAAS,QAAQ,iBAAiB;;AAE3C;AACA;AACA;AACA,OAAOC,UAAU,MAAM,YAAY;AAEnC,MAAMC,QAAQ,GAAG,CAChB,CACC,gBAAgB,EAChB;EACCC,OAAO,EAAET,EAAE,CACV,sJACD;AACD,CAAC,CACD,CACD;AAED,MAAMU,IAAI,GAAGA,CAAE;EAAEC,UAAU;EAAEC;AAAS,CAAC,KAAM;EAC5C,MAAM;IAAEC;EAAK,CAAC,GAAGF,UAAU;EAC3B,MAAMG,UAAU,GAAGZ,aAAa,CAAE;IACjCa,SAAS,EAAER,UAAU,CAAE,uCAAuC,EAAE;MAC/D,CAAG,0BAA0BM,IAAM,EAAC,GAAIA;IACzC,CAAE;EACH,CAAE,CAAC;EAEH,MAAM;IAAEG;EAAe,CAAC,GAAGV,SAAS,CACjCW,MAAM,IAAM;IACb,MAAM;MAAEC;IAAS,CAAC,GAAGD,MAAM,CAAEZ,gBAAiB,CAAC;IAC/C,MAAMc,KAAK,GAAGD,QAAQ,CAAEN,QAAS,CAAC;IAClC,OAAO;MACNI,cAAc,EAAE,CAAC,EAAIG,KAAK,IAAIA,KAAK,CAACC,WAAW,CAACC,MAAM;IACvD,CAAC;EACF,CAAC,EACD,CAAET,QAAQ,CACX,CAAC;EAED,MAAMU,gBAAgB,GAAGnB,mBAAmB,CAAEW,UAAU,EAAE;IACzDS,QAAQ,EAAEf,QAAQ;IAClBgB,cAAc,EAAER,cAAc,GAC3BS,SAAS,GACTxB,WAAW,CAACyB;EAChB,CAAE,CAAC;EAEH,OACCC,aAAA;IAAA,GACML,gBAAgB;IACrB,wBAAuBtB,EAAE,CAAE,iCAAkC,CAAG;IAChE,sBAAqBA,EAAE,CAAE,+BAAgC;EAAG,CAC5D,CAAC;AAEJ,CAAC;AACD,eAAeU,IAAI"}