@wordpress/edit-site 3.0.10 → 3.0.14

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 (186) hide show
  1. package/build/components/add-new-template/new-template-part.js +34 -18
  2. package/build/components/add-new-template/new-template-part.js.map +1 -1
  3. package/build/components/add-new-template/new-template.js +41 -23
  4. package/build/components/add-new-template/new-template.js.map +1 -1
  5. package/build/components/block-editor/index.js +3 -1
  6. package/build/components/block-editor/index.js.map +1 -1
  7. package/build/components/editor/index.js +12 -6
  8. package/build/components/editor/index.js.map +1 -1
  9. package/build/components/global-styles/color-palette-panel.js +29 -6
  10. package/build/components/global-styles/color-palette-panel.js.map +1 -1
  11. package/build/components/global-styles/global-styles-provider.js +5 -43
  12. package/build/components/global-styles/global-styles-provider.js.map +1 -1
  13. package/build/components/global-styles/gradients-palette-panel.js +71 -0
  14. package/build/components/global-styles/gradients-palette-panel.js.map +1 -0
  15. package/build/components/global-styles/hooks.js +5 -5
  16. package/build/components/global-styles/hooks.js.map +1 -1
  17. package/build/components/global-styles/palette.js +11 -5
  18. package/build/components/global-styles/palette.js.map +1 -1
  19. package/build/components/global-styles/screen-background-color.js +3 -1
  20. package/build/components/global-styles/screen-background-color.js.map +1 -1
  21. package/build/components/global-styles/screen-color-palette.js +23 -3
  22. package/build/components/global-styles/screen-color-palette.js.map +1 -1
  23. package/build/components/global-styles/screen-link-color.js +3 -1
  24. package/build/components/global-styles/screen-link-color.js.map +1 -1
  25. package/build/components/global-styles/screen-text-color.js +3 -1
  26. package/build/components/global-styles/screen-text-color.js.map +1 -1
  27. package/build/components/global-styles/screen-typography-element.js +54 -0
  28. package/build/components/global-styles/screen-typography-element.js.map +1 -0
  29. package/build/components/global-styles/screen-typography.js +74 -6
  30. package/build/components/global-styles/screen-typography.js.map +1 -1
  31. package/build/components/global-styles/typography-panel.js +28 -8
  32. package/build/components/global-styles/typography-panel.js.map +1 -1
  33. package/build/components/global-styles/ui.js +12 -0
  34. package/build/components/global-styles/ui.js.map +1 -1
  35. package/build/components/global-styles/use-global-styles-output.js +2 -2
  36. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  37. package/build/components/global-styles/utils.js +1 -1
  38. package/build/components/global-styles/utils.js.map +1 -1
  39. package/build/components/keyboard-shortcuts/index.js +26 -0
  40. package/build/components/keyboard-shortcuts/index.js.map +1 -1
  41. package/build/components/list/actions/index.js +104 -0
  42. package/build/components/list/actions/index.js.map +1 -0
  43. package/build/components/list/actions/rename-menu-item.js +112 -0
  44. package/build/components/list/actions/rename-menu-item.js.map +1 -0
  45. package/build/components/list/added-by.js +180 -0
  46. package/build/components/list/added-by.js.map +1 -0
  47. package/build/components/list/index.js +54 -7
  48. package/build/components/list/index.js.map +1 -1
  49. package/build/components/list/table.js +58 -68
  50. package/build/components/list/table.js.map +1 -1
  51. package/build/components/list/use-register-shortcuts.js +52 -0
  52. package/build/components/list/use-register-shortcuts.js.map +1 -0
  53. package/build/components/navigation-sidebar/index.js +24 -9
  54. package/build/components/navigation-sidebar/index.js.map +1 -1
  55. package/build/components/navigation-sidebar/navigation-panel/index.js +35 -17
  56. package/build/components/navigation-sidebar/navigation-panel/index.js.map +1 -1
  57. package/build/components/navigation-sidebar/navigation-toggle/index.js +14 -5
  58. package/build/components/navigation-sidebar/navigation-toggle/index.js.map +1 -1
  59. package/build/components/template-details/edit-template-title.js +33 -0
  60. package/build/components/template-details/edit-template-title.js.map +1 -0
  61. package/build/components/template-details/index.js +8 -4
  62. package/build/components/template-details/index.js.map +1 -1
  63. package/build/components/template-details/template-areas.js +1 -1
  64. package/build/components/template-details/template-areas.js.map +1 -1
  65. package/build/index.js +8 -2
  66. package/build/index.js.map +1 -1
  67. package/build/store/actions.js +47 -18
  68. package/build/store/actions.js.map +1 -1
  69. package/build/store/selectors.js +25 -5
  70. package/build/store/selectors.js.map +1 -1
  71. package/build-module/components/add-new-template/new-template-part.js +30 -17
  72. package/build-module/components/add-new-template/new-template-part.js.map +1 -1
  73. package/build-module/components/add-new-template/new-template.js +40 -24
  74. package/build-module/components/add-new-template/new-template.js.map +1 -1
  75. package/build-module/components/block-editor/index.js +2 -1
  76. package/build-module/components/block-editor/index.js.map +1 -1
  77. package/build-module/components/editor/index.js +13 -7
  78. package/build-module/components/editor/index.js.map +1 -1
  79. package/build-module/components/global-styles/color-palette-panel.js +29 -7
  80. package/build-module/components/global-styles/color-palette-panel.js.map +1 -1
  81. package/build-module/components/global-styles/global-styles-provider.js +6 -39
  82. package/build-module/components/global-styles/global-styles-provider.js.map +1 -1
  83. package/build-module/components/global-styles/gradients-palette-panel.js +60 -0
  84. package/build-module/components/global-styles/gradients-palette-panel.js.map +1 -0
  85. package/build-module/components/global-styles/hooks.js +5 -5
  86. package/build-module/components/global-styles/hooks.js.map +1 -1
  87. package/build-module/components/global-styles/palette.js +12 -5
  88. package/build-module/components/global-styles/palette.js.map +1 -1
  89. package/build-module/components/global-styles/screen-background-color.js +3 -1
  90. package/build-module/components/global-styles/screen-background-color.js.map +1 -1
  91. package/build-module/components/global-styles/screen-color-palette.js +22 -3
  92. package/build-module/components/global-styles/screen-color-palette.js.map +1 -1
  93. package/build-module/components/global-styles/screen-link-color.js +3 -1
  94. package/build-module/components/global-styles/screen-link-color.js.map +1 -1
  95. package/build-module/components/global-styles/screen-text-color.js +3 -1
  96. package/build-module/components/global-styles/screen-text-color.js.map +1 -1
  97. package/build-module/components/global-styles/screen-typography-element.js +41 -0
  98. package/build-module/components/global-styles/screen-typography-element.js.map +1 -0
  99. package/build-module/components/global-styles/screen-typography.js +70 -6
  100. package/build-module/components/global-styles/screen-typography.js.map +1 -1
  101. package/build-module/components/global-styles/typography-panel.js +28 -8
  102. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  103. package/build-module/components/global-styles/ui.js +11 -0
  104. package/build-module/components/global-styles/ui.js.map +1 -1
  105. package/build-module/components/global-styles/use-global-styles-output.js +2 -2
  106. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  107. package/build-module/components/global-styles/utils.js +1 -1
  108. package/build-module/components/global-styles/utils.js.map +1 -1
  109. package/build-module/components/keyboard-shortcuts/index.js +26 -0
  110. package/build-module/components/keyboard-shortcuts/index.js.map +1 -1
  111. package/build-module/components/list/actions/index.js +85 -0
  112. package/build-module/components/list/actions/index.js.map +1 -0
  113. package/build-module/components/list/actions/rename-menu-item.js +101 -0
  114. package/build-module/components/list/actions/rename-menu-item.js.map +1 -0
  115. package/build-module/components/list/added-by.js +166 -0
  116. package/build-module/components/list/added-by.js.map +1 -0
  117. package/build-module/components/list/index.js +49 -8
  118. package/build-module/components/list/index.js.map +1 -1
  119. package/build-module/components/list/table.js +60 -70
  120. package/build-module/components/list/table.js.map +1 -1
  121. package/build-module/components/list/use-register-shortcuts.js +41 -0
  122. package/build-module/components/list/use-register-shortcuts.js.map +1 -0
  123. package/build-module/components/navigation-sidebar/index.js +22 -10
  124. package/build-module/components/navigation-sidebar/index.js.map +1 -1
  125. package/build-module/components/navigation-sidebar/navigation-panel/index.js +33 -18
  126. package/build-module/components/navigation-sidebar/navigation-panel/index.js.map +1 -1
  127. package/build-module/components/navigation-sidebar/navigation-toggle/index.js +14 -6
  128. package/build-module/components/navigation-sidebar/navigation-toggle/index.js.map +1 -1
  129. package/build-module/components/template-details/edit-template-title.js +23 -0
  130. package/build-module/components/template-details/edit-template-title.js.map +1 -0
  131. package/build-module/components/template-details/index.js +7 -4
  132. package/build-module/components/template-details/index.js.map +1 -1
  133. package/build-module/components/template-details/template-areas.js +1 -1
  134. package/build-module/components/template-details/template-areas.js.map +1 -1
  135. package/build-module/index.js +8 -3
  136. package/build-module/index.js.map +1 -1
  137. package/build-module/store/actions.js +48 -19
  138. package/build-module/store/actions.js.map +1 -1
  139. package/build-module/store/selectors.js +21 -3
  140. package/build-module/store/selectors.js.map +1 -1
  141. package/build-style/style-rtl.css +146 -21
  142. package/build-style/style.css +146 -21
  143. package/package.json +10 -8
  144. package/src/components/add-new-template/new-template-part.js +32 -18
  145. package/src/components/add-new-template/new-template.js +39 -20
  146. package/src/components/block-editor/index.js +2 -0
  147. package/src/components/editor/index.js +17 -6
  148. package/src/components/global-styles/color-palette-panel.js +64 -7
  149. package/src/components/global-styles/global-styles-provider.js +3 -33
  150. package/src/components/global-styles/gradients-palette-panel.js +99 -0
  151. package/src/components/global-styles/hooks.js +4 -4
  152. package/src/components/global-styles/palette.js +30 -10
  153. package/src/components/global-styles/screen-background-color.js +2 -0
  154. package/src/components/global-styles/screen-color-palette.js +30 -3
  155. package/src/components/global-styles/screen-link-color.js +2 -0
  156. package/src/components/global-styles/screen-text-color.js +2 -0
  157. package/src/components/global-styles/screen-typography-element.js +39 -0
  158. package/src/components/global-styles/screen-typography.js +84 -3
  159. package/src/components/global-styles/style.scss +45 -6
  160. package/src/components/global-styles/test/use-global-styles-output.js +1 -1
  161. package/src/components/global-styles/test/utils.js +1 -1
  162. package/src/components/global-styles/typography-panel.js +37 -7
  163. package/src/components/global-styles/ui.js +9 -0
  164. package/src/components/global-styles/use-global-styles-output.js +2 -2
  165. package/src/components/global-styles/utils.js +1 -1
  166. package/src/components/keyboard-shortcuts/index.js +32 -0
  167. package/src/components/list/actions/index.js +95 -0
  168. package/src/components/list/actions/rename-menu-item.js +134 -0
  169. package/src/components/list/added-by.js +179 -0
  170. package/src/components/list/index.js +63 -5
  171. package/src/components/list/style.scss +106 -11
  172. package/src/components/list/table.js +65 -76
  173. package/src/components/list/use-register-shortcuts.js +45 -0
  174. package/src/components/navigation-sidebar/index.js +21 -12
  175. package/src/components/navigation-sidebar/navigation-panel/index.js +32 -15
  176. package/src/components/navigation-sidebar/navigation-toggle/index.js +29 -17
  177. package/src/components/navigation-sidebar/navigation-toggle/test/index.js +2 -0
  178. package/src/components/sidebar/style.scss +2 -1
  179. package/src/components/template-details/edit-template-title.js +28 -0
  180. package/src/components/template-details/index.js +15 -10
  181. package/src/components/template-details/template-areas.js +1 -1
  182. package/src/index.js +10 -2
  183. package/src/store/actions.js +82 -34
  184. package/src/store/selectors.js +22 -4
  185. package/src/store/test/actions.js +0 -24
  186. package/src/store/test/selectors.js +24 -0
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = RenameMenuItem;
7
+
8
+ var _element = require("@wordpress/element");
9
+
10
+ var _i18n = require("@wordpress/i18n");
11
+
12
+ var _data = require("@wordpress/data");
13
+
14
+ var _components = require("@wordpress/components");
15
+
16
+ var _coreData = require("@wordpress/core-data");
17
+
18
+ var _notices = require("@wordpress/notices");
19
+
20
+ /**
21
+ * WordPress dependencies
22
+ */
23
+ function RenameMenuItem(_ref) {
24
+ let {
25
+ template,
26
+ onClose
27
+ } = _ref;
28
+ const [title, setTitle] = (0, _element.useState)(() => template.title.rendered);
29
+ const [isModalOpen, setIsModalOpen] = (0, _element.useState)(false);
30
+ const {
31
+ getLastEntitySaveError
32
+ } = (0, _data.useSelect)(_coreData.store);
33
+ const {
34
+ editEntityRecord,
35
+ saveEditedEntityRecord
36
+ } = (0, _data.useDispatch)(_coreData.store);
37
+ const {
38
+ createSuccessNotice,
39
+ createErrorNotice
40
+ } = (0, _data.useDispatch)(_notices.store);
41
+
42
+ if (!template.is_custom) {
43
+ return null;
44
+ }
45
+
46
+ async function onTemplateRename(event) {
47
+ event.preventDefault();
48
+
49
+ try {
50
+ await editEntityRecord('postType', template.type, template.id, {
51
+ title
52
+ }); // Update state before saving rerenders the list.
53
+
54
+ setTitle('');
55
+ setIsModalOpen(false);
56
+ onClose(); // Persist edited entity.
57
+
58
+ await saveEditedEntityRecord('postType', template.type, template.id);
59
+ const lastError = getLastEntitySaveError('postType', template.type, template.id);
60
+
61
+ if (lastError) {
62
+ throw lastError;
63
+ }
64
+
65
+ createSuccessNotice((0, _i18n.__)('Template has been renamed.'), {
66
+ type: 'snackbar'
67
+ });
68
+ } catch (error) {
69
+ const errorMessage = error.message && error.code !== 'unknown_error' ? error.message : (0, _i18n.__)('An error occurred while renaming the template.');
70
+ createErrorNotice(errorMessage, {
71
+ type: 'snackbar'
72
+ });
73
+ }
74
+ }
75
+
76
+ return (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_components.MenuItem, {
77
+ onClick: () => {
78
+ setIsModalOpen(true);
79
+ setTitle(template.title.rendered);
80
+ }
81
+ }, (0, _i18n.__)('Rename')), isModalOpen && (0, _element.createElement)(_components.Modal, {
82
+ title: (0, _i18n.__)('Rename template'),
83
+ closeLabel: (0, _i18n.__)('Close'),
84
+ onRequestClose: () => {
85
+ setIsModalOpen(false);
86
+ },
87
+ overlayClassName: "edit-site-list__rename-modal"
88
+ }, (0, _element.createElement)("form", {
89
+ onSubmit: onTemplateRename
90
+ }, (0, _element.createElement)(_components.Flex, {
91
+ align: "flex-start",
92
+ gap: 8
93
+ }, (0, _element.createElement)(_components.FlexItem, null, (0, _element.createElement)(_components.TextControl, {
94
+ label: (0, _i18n.__)('Name'),
95
+ value: title,
96
+ onChange: setTitle,
97
+ required: true
98
+ }))), (0, _element.createElement)(_components.Flex, {
99
+ className: "edit-site-list__rename-modal-actions",
100
+ justify: "flex-end",
101
+ expanded: false
102
+ }, (0, _element.createElement)(_components.FlexItem, null, (0, _element.createElement)(_components.Button, {
103
+ variant: "tertiary",
104
+ onClick: () => {
105
+ setIsModalOpen(false);
106
+ }
107
+ }, (0, _i18n.__)('Cancel'))), (0, _element.createElement)(_components.FlexItem, null, (0, _element.createElement)(_components.Button, {
108
+ variant: "primary",
109
+ type: "submit"
110
+ }, (0, _i18n.__)('Save')))))));
111
+ }
112
+ //# sourceMappingURL=rename-menu-item.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/edit-site/src/components/list/actions/rename-menu-item.js"],"names":["RenameMenuItem","template","onClose","title","setTitle","rendered","isModalOpen","setIsModalOpen","getLastEntitySaveError","coreStore","editEntityRecord","saveEditedEntityRecord","createSuccessNotice","createErrorNotice","noticesStore","is_custom","onTemplateRename","event","preventDefault","type","id","lastError","error","errorMessage","message","code"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tButton,\n\tFlex,\n\tFlexItem,\n\tMenuItem,\n\tModal,\n\tTextControl,\n} from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as noticesStore } from '@wordpress/notices';\n\nexport default function RenameMenuItem( { template, onClose } ) {\n\tconst [ title, setTitle ] = useState( () => template.title.rendered );\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\n\tconst { getLastEntitySaveError } = useSelect( coreStore );\n\tconst { editEntityRecord, saveEditedEntityRecord } = useDispatch(\n\t\tcoreStore\n\t);\n\tconst { createSuccessNotice, createErrorNotice } = useDispatch(\n\t\tnoticesStore\n\t);\n\n\tif ( ! template.is_custom ) {\n\t\treturn null;\n\t}\n\n\tasync function onTemplateRename( event ) {\n\t\tevent.preventDefault();\n\n\t\ttry {\n\t\t\tawait editEntityRecord( 'postType', template.type, template.id, {\n\t\t\t\ttitle,\n\t\t\t} );\n\n\t\t\t// Update state before saving rerenders the list.\n\t\t\tsetTitle( '' );\n\t\t\tsetIsModalOpen( false );\n\t\t\tonClose();\n\n\t\t\t// Persist edited entity.\n\t\t\tawait saveEditedEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\ttemplate.type,\n\t\t\t\ttemplate.id\n\t\t\t);\n\n\t\t\tconst lastError = getLastEntitySaveError(\n\t\t\t\t'postType',\n\t\t\t\ttemplate.type,\n\t\t\t\ttemplate.id\n\t\t\t);\n\n\t\t\tif ( lastError ) {\n\t\t\t\tthrow lastError;\n\t\t\t}\n\n\t\t\tcreateSuccessNotice( __( 'Template has been renamed.' ), {\n\t\t\t\ttype: 'snackbar',\n\t\t\t} );\n\t\t} catch ( error ) {\n\t\t\tconst errorMessage =\n\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t? error.message\n\t\t\t\t\t: __( 'An error occurred while renaming the template.' );\n\n\t\t\tcreateErrorNotice( errorMessage, { type: 'snackbar' } );\n\t\t}\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<MenuItem\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tsetIsModalOpen( true );\n\t\t\t\t\tsetTitle( template.title.rendered );\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ __( 'Rename' ) }\n\t\t\t</MenuItem>\n\t\t\t{ isModalOpen && (\n\t\t\t\t<Modal\n\t\t\t\t\ttitle={ __( 'Rename template' ) }\n\t\t\t\t\tcloseLabel={ __( 'Close' ) }\n\t\t\t\t\tonRequestClose={ () => {\n\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t} }\n\t\t\t\t\toverlayClassName=\"edit-site-list__rename-modal\"\n\t\t\t\t>\n\t\t\t\t\t<form onSubmit={ onTemplateRename }>\n\t\t\t\t\t\t<Flex align=\"flex-start\" gap={ 8 }>\n\t\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\t\t\t\t\tvalue={ title }\n\t\t\t\t\t\t\t\t\tonChange={ setTitle }\n\t\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t</Flex>\n\n\t\t\t\t\t\t<Flex\n\t\t\t\t\t\t\tclassName=\"edit-site-list__rename-modal-actions\"\n\t\t\t\t\t\t\tjustify=\"flex-end\"\n\t\t\t\t\t\t\texpanded={ false }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\tsetIsModalOpen( false );\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\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t\t<Button variant=\"primary\" type=\"submit\">\n\t\t\t\t\t\t\t\t\t{ __( 'Save' ) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t</Flex>\n\t\t\t\t\t</form>\n\t\t\t\t</Modal>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"]}
@@ -0,0 +1,180 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = AddedBy;
9
+
10
+ var _element = require("@wordpress/element");
11
+
12
+ var _classnames = _interopRequireDefault(require("classnames"));
13
+
14
+ var _components = require("@wordpress/components");
15
+
16
+ var _coreData = require("@wordpress/core-data");
17
+
18
+ var _data = require("@wordpress/data");
19
+
20
+ var _icons = require("@wordpress/icons");
21
+
22
+ var _i18n = require("@wordpress/i18n");
23
+
24
+ /**
25
+ * External dependencies
26
+ */
27
+
28
+ /**
29
+ * WordPress dependencies
30
+ */
31
+ const TEMPLATE_POST_TYPE_NAMES = ['wp_template', 'wp_template_part'];
32
+
33
+ function CustomizedTooltip(_ref) {
34
+ let {
35
+ isCustomized,
36
+ children
37
+ } = _ref;
38
+
39
+ if (!isCustomized) {
40
+ return children;
41
+ }
42
+
43
+ return (0, _element.createElement)(_components.Tooltip, {
44
+ text: (0, _i18n.__)('This template has been customized')
45
+ }, children);
46
+ }
47
+
48
+ function AddedByTheme(_ref2) {
49
+ var _theme$name;
50
+
51
+ let {
52
+ slug,
53
+ isCustomized
54
+ } = _ref2;
55
+ const theme = (0, _data.useSelect)(select => select(_coreData.store).getTheme(slug), [slug]);
56
+ return (0, _element.createElement)(_components.__experimentalHStack, {
57
+ alignment: "left"
58
+ }, (0, _element.createElement)(CustomizedTooltip, {
59
+ isCustomized: isCustomized
60
+ }, (0, _element.createElement)("div", {
61
+ className: (0, _classnames.default)('edit-site-list-added-by__icon', {
62
+ 'is-customized': isCustomized
63
+ })
64
+ }, (0, _element.createElement)(_components.Icon, {
65
+ icon: _icons.layout
66
+ }))), (0, _element.createElement)("span", null, (theme === null || theme === void 0 ? void 0 : (_theme$name = theme.name) === null || _theme$name === void 0 ? void 0 : _theme$name.rendered) || slug));
67
+ }
68
+
69
+ function AddedByPlugin(_ref3) {
70
+ let {
71
+ slug,
72
+ isCustomized
73
+ } = _ref3;
74
+ const plugin = (0, _data.useSelect)(select => select(_coreData.store).getPlugin(slug), [slug]);
75
+ return (0, _element.createElement)(_components.__experimentalHStack, {
76
+ alignment: "left"
77
+ }, (0, _element.createElement)(CustomizedTooltip, {
78
+ isCustomized: isCustomized
79
+ }, (0, _element.createElement)("div", {
80
+ className: "edit-site-list-added-by__icon"
81
+ }, (0, _element.createElement)(_components.Icon, {
82
+ icon: _icons.plugins
83
+ }))), (0, _element.createElement)("span", null, (plugin === null || plugin === void 0 ? void 0 : plugin.name) || slug));
84
+ }
85
+
86
+ function AddedByAuthor(_ref4) {
87
+ let {
88
+ id
89
+ } = _ref4;
90
+ const user = (0, _data.useSelect)(select => select(_coreData.store).getUser(id), [id]);
91
+ const [isImageLoaded, setIsImageLoaded] = (0, _element.useState)(false);
92
+ return (0, _element.createElement)(_components.__experimentalHStack, {
93
+ alignment: "left"
94
+ }, (0, _element.createElement)("div", {
95
+ className: (0, _classnames.default)('edit-site-list-added-by__avatar', {
96
+ 'is-loaded': isImageLoaded
97
+ })
98
+ }, (0, _element.createElement)("img", {
99
+ onLoad: () => setIsImageLoaded(true),
100
+ alt: "",
101
+ src: user === null || user === void 0 ? void 0 : user.avatar_urls[48]
102
+ })), (0, _element.createElement)("span", null, user === null || user === void 0 ? void 0 : user.nickname));
103
+ }
104
+
105
+ function AddedBySite() {
106
+ const {
107
+ name,
108
+ logoURL
109
+ } = (0, _data.useSelect)(select => {
110
+ var _getMedia;
111
+
112
+ const {
113
+ getEntityRecord,
114
+ getMedia
115
+ } = select(_coreData.store);
116
+ const siteData = getEntityRecord('root', '__unstableBase');
117
+ return {
118
+ name: siteData.name,
119
+ logoURL: siteData !== null && siteData !== void 0 && siteData.site_logo ? (_getMedia = getMedia(siteData.site_logo)) === null || _getMedia === void 0 ? void 0 : _getMedia.source_url : undefined
120
+ };
121
+ }, []);
122
+ const [isImageLoaded, setIsImageLoaded] = (0, _element.useState)(false);
123
+ return (0, _element.createElement)(_components.__experimentalHStack, {
124
+ alignment: "left"
125
+ }, (0, _element.createElement)("div", {
126
+ className: (0, _classnames.default)('edit-site-list-added-by__avatar', {
127
+ 'is-loaded': isImageLoaded
128
+ })
129
+ }, (0, _element.createElement)("img", {
130
+ onLoad: () => setIsImageLoaded(true),
131
+ alt: "",
132
+ src: logoURL
133
+ })), (0, _element.createElement)("span", null, name));
134
+ }
135
+
136
+ function AddedBy(_ref5) {
137
+ let {
138
+ templateType,
139
+ template
140
+ } = _ref5;
141
+
142
+ if (!template) {
143
+ return;
144
+ }
145
+
146
+ if (TEMPLATE_POST_TYPE_NAMES.includes(templateType)) {
147
+ // Template originally provided by a theme, but customized by a user.
148
+ // Templates originally didn't have the 'origin' field so identify
149
+ // older customized templates by checking for no origin and a 'theme'
150
+ // or 'custom' source.
151
+ if (template.has_theme_file && (template.origin === 'theme' || !template.origin && ['theme', 'custom'].includes(template.source))) {
152
+ return (0, _element.createElement)(AddedByTheme, {
153
+ slug: template.theme,
154
+ isCustomized: template.source === 'custom'
155
+ });
156
+ } // Template originally provided by a plugin, but customized by a user.
157
+
158
+
159
+ if (template.has_theme_file && template.origin === 'plugin') {
160
+ return (0, _element.createElement)(AddedByPlugin, {
161
+ slug: template.theme,
162
+ isCustomized: template.source === 'custom'
163
+ });
164
+ } // Template was created from scratch, but has no author. Author support
165
+ // was only added to templates in WordPress 5.9. Fallback to showing the
166
+ // site logo and title.
167
+
168
+
169
+ if (!template.has_theme_file && template.source === 'custom' && !template.author) {
170
+ return (0, _element.createElement)(AddedBySite, null);
171
+ }
172
+ } // Simply show the author for templates created from scratch that have an
173
+ // author or for any other post type.
174
+
175
+
176
+ return (0, _element.createElement)(AddedByAuthor, {
177
+ id: template.author
178
+ });
179
+ }
180
+ //# sourceMappingURL=added-by.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/edit-site/src/components/list/added-by.js"],"names":["TEMPLATE_POST_TYPE_NAMES","CustomizedTooltip","isCustomized","children","AddedByTheme","slug","theme","select","coreStore","getTheme","themeIcon","name","rendered","AddedByPlugin","plugin","getPlugin","pluginIcon","AddedByAuthor","id","user","getUser","isImageLoaded","setIsImageLoaded","avatar_urls","nickname","AddedBySite","logoURL","getEntityRecord","getMedia","siteData","site_logo","source_url","undefined","AddedBy","templateType","template","includes","has_theme_file","origin","source","author"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalHStack as HStack,\n\tIcon,\n\tTooltip,\n} from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport { useState } from '@wordpress/element';\nimport { layout as themeIcon, plugins as pluginIcon } from '@wordpress/icons';\nimport { __ } from '@wordpress/i18n';\n\nconst TEMPLATE_POST_TYPE_NAMES = [ 'wp_template', 'wp_template_part' ];\n\nfunction CustomizedTooltip( { isCustomized, children } ) {\n\tif ( ! isCustomized ) {\n\t\treturn children;\n\t}\n\n\treturn (\n\t\t<Tooltip text={ __( 'This template has been customized' ) }>\n\t\t\t{ children }\n\t\t</Tooltip>\n\t);\n}\n\nfunction AddedByTheme( { slug, isCustomized } ) {\n\tconst theme = useSelect(\n\t\t( select ) => select( coreStore ).getTheme( slug ),\n\t\t[ slug ]\n\t);\n\n\treturn (\n\t\t<HStack alignment=\"left\">\n\t\t\t<CustomizedTooltip isCustomized={ isCustomized }>\n\t\t\t\t<div\n\t\t\t\t\tclassName={ classnames( 'edit-site-list-added-by__icon', {\n\t\t\t\t\t\t'is-customized': isCustomized,\n\t\t\t\t\t} ) }\n\t\t\t\t>\n\t\t\t\t\t<Icon icon={ themeIcon } />\n\t\t\t\t</div>\n\t\t\t</CustomizedTooltip>\n\t\t\t<span>{ theme?.name?.rendered || slug }</span>\n\t\t</HStack>\n\t);\n}\n\nfunction AddedByPlugin( { slug, isCustomized } ) {\n\tconst plugin = useSelect(\n\t\t( select ) => select( coreStore ).getPlugin( slug ),\n\t\t[ slug ]\n\t);\n\n\treturn (\n\t\t<HStack alignment=\"left\">\n\t\t\t<CustomizedTooltip isCustomized={ isCustomized }>\n\t\t\t\t<div className=\"edit-site-list-added-by__icon\">\n\t\t\t\t\t<Icon icon={ pluginIcon } />\n\t\t\t\t</div>\n\t\t\t</CustomizedTooltip>\n\t\t\t<span>{ plugin?.name || slug }</span>\n\t\t</HStack>\n\t);\n}\n\nfunction AddedByAuthor( { id } ) {\n\tconst user = useSelect( ( select ) => select( coreStore ).getUser( id ), [\n\t\tid,\n\t] );\n\tconst [ isImageLoaded, setIsImageLoaded ] = useState( false );\n\n\treturn (\n\t\t<HStack alignment=\"left\">\n\t\t\t<div\n\t\t\t\tclassName={ classnames( 'edit-site-list-added-by__avatar', {\n\t\t\t\t\t'is-loaded': isImageLoaded,\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t<img\n\t\t\t\t\tonLoad={ () => setIsImageLoaded( true ) }\n\t\t\t\t\talt=\"\"\n\t\t\t\t\tsrc={ user?.avatar_urls[ 48 ] }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t<span>{ user?.nickname }</span>\n\t\t</HStack>\n\t);\n}\n\nfunction AddedBySite() {\n\tconst { name, logoURL } = useSelect( ( select ) => {\n\t\tconst { getEntityRecord, getMedia } = select( coreStore );\n\t\tconst siteData = getEntityRecord( 'root', '__unstableBase' );\n\n\t\treturn {\n\t\t\tname: siteData.name,\n\t\t\tlogoURL: siteData?.site_logo\n\t\t\t\t? getMedia( siteData.site_logo )?.source_url\n\t\t\t\t: undefined,\n\t\t};\n\t}, [] );\n\tconst [ isImageLoaded, setIsImageLoaded ] = useState( false );\n\n\treturn (\n\t\t<HStack alignment=\"left\">\n\t\t\t<div\n\t\t\t\tclassName={ classnames( 'edit-site-list-added-by__avatar', {\n\t\t\t\t\t'is-loaded': isImageLoaded,\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t<img\n\t\t\t\t\tonLoad={ () => setIsImageLoaded( true ) }\n\t\t\t\t\talt=\"\"\n\t\t\t\t\tsrc={ logoURL }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t<span>{ name }</span>\n\t\t</HStack>\n\t);\n}\n\nexport default function AddedBy( { templateType, template } ) {\n\tif ( ! template ) {\n\t\treturn;\n\t}\n\n\tif ( TEMPLATE_POST_TYPE_NAMES.includes( templateType ) ) {\n\t\t// Template originally provided by a theme, but customized by a user.\n\t\t// Templates originally didn't have the 'origin' field so identify\n\t\t// older customized templates by checking for no origin and a 'theme'\n\t\t// or 'custom' source.\n\t\tif (\n\t\t\ttemplate.has_theme_file &&\n\t\t\t( template.origin === 'theme' ||\n\t\t\t\t( ! template.origin &&\n\t\t\t\t\t[ 'theme', 'custom' ].includes( template.source ) ) )\n\t\t) {\n\t\t\treturn (\n\t\t\t\t<AddedByTheme\n\t\t\t\t\tslug={ template.theme }\n\t\t\t\t\tisCustomized={ template.source === 'custom' }\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\t// Template originally provided by a plugin, but customized by a user.\n\t\tif ( template.has_theme_file && template.origin === 'plugin' ) {\n\t\t\treturn (\n\t\t\t\t<AddedByPlugin\n\t\t\t\t\tslug={ template.theme }\n\t\t\t\t\tisCustomized={ template.source === 'custom' }\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\t// Template was created from scratch, but has no author. Author support\n\t\t// was only added to templates in WordPress 5.9. Fallback to showing the\n\t\t// site logo and title.\n\t\tif (\n\t\t\t! template.has_theme_file &&\n\t\t\ttemplate.source === 'custom' &&\n\t\t\t! template.author\n\t\t) {\n\t\t\treturn <AddedBySite />;\n\t\t}\n\t}\n\n\t// Simply show the author for templates created from scratch that have an\n\t// author or for any other post type.\n\treturn <AddedByAuthor id={ template.author } />;\n}\n"]}
@@ -9,11 +9,21 @@ exports.default = List;
9
9
 
10
10
  var _element = require("@wordpress/element");
11
11
 
12
+ var _classnames = _interopRequireDefault(require("classnames"));
13
+
14
+ var _coreData = require("@wordpress/core-data");
15
+
16
+ var _data = require("@wordpress/data");
17
+
12
18
  var _interface = require("@wordpress/interface");
13
19
 
14
20
  var _i18n = require("@wordpress/i18n");
15
21
 
16
- var _compose = require("@wordpress/compose");
22
+ var _keyboardShortcuts = require("@wordpress/keyboard-shortcuts");
23
+
24
+ var _editor = require("@wordpress/editor");
25
+
26
+ var _useRegisterShortcuts = _interopRequireDefault(require("./use-register-shortcuts"));
17
27
 
18
28
  var _header = _interopRequireDefault(require("./header"));
19
29
 
@@ -21,6 +31,12 @@ var _navigationSidebar = _interopRequireDefault(require("../navigation-sidebar")
21
31
 
22
32
  var _table = _interopRequireDefault(require("./table"));
23
33
 
34
+ var _store = require("../../store");
35
+
36
+ /**
37
+ * External dependencies
38
+ */
39
+
24
40
  /**
25
41
  * WordPress dependencies
26
42
  */
@@ -29,27 +45,58 @@ var _table = _interopRequireDefault(require("./table"));
29
45
  * Internal dependencies
30
46
  */
31
47
  function List(_ref) {
48
+ var _postType$labels;
49
+
32
50
  let {
33
51
  templateType
34
52
  } = _ref;
35
- const isDesktopViewport = (0, _compose.useViewportMatch)('medium');
53
+ (0, _useRegisterShortcuts.default)();
54
+ const {
55
+ previousShortcut,
56
+ nextShortcut,
57
+ isNavigationOpen
58
+ } = (0, _data.useSelect)(select => {
59
+ return {
60
+ previousShortcut: select(_keyboardShortcuts.store).getAllShortcutKeyCombinations('core/edit-site/previous-region'),
61
+ nextShortcut: select(_keyboardShortcuts.store).getAllShortcutKeyCombinations('core/edit-site/next-region'),
62
+ isNavigationOpen: select(_store.store).isNavigationOpened()
63
+ };
64
+ }, []);
65
+ const postType = (0, _data.useSelect)(select => select(_coreData.store).getPostType(templateType), [templateType]); // `postType` could load in asynchronously. Only provide the detailed region labels if
66
+ // the postType has loaded, otherwise `InterfaceSkeleton` will fallback to the defaults.
67
+
68
+ const itemsListLabel = postType === null || postType === void 0 ? void 0 : (_postType$labels = postType.labels) === null || _postType$labels === void 0 ? void 0 : _postType$labels.items_list;
69
+ const detailedRegionLabels = postType ? {
70
+ header: (0, _i18n.sprintf)( // translators: %s - the name of the page, 'Header' as in the header area of that page.
71
+ (0, _i18n.__)('%s - Header'), itemsListLabel),
72
+ body: (0, _i18n.sprintf)( // translators: %s - the name of the page, 'Content' as in the content area of that page.
73
+ (0, _i18n.__)('%s - Content'), itemsListLabel)
74
+ } : undefined;
36
75
  return (0, _element.createElement)(_interface.InterfaceSkeleton, {
37
- className: "edit-site-list",
76
+ className: (0, _classnames.default)('edit-site-list', {
77
+ 'is-navigation-open': isNavigationOpen
78
+ }),
38
79
  labels: {
39
- drawer: (0, _i18n.__)('Navigation Sidebar')
80
+ drawer: (0, _i18n.__)('Navigation Sidebar'),
81
+ ...detailedRegionLabels
40
82
  },
41
83
  header: (0, _element.createElement)(_header.default, {
42
84
  templateType: templateType
43
85
  }),
44
86
  drawer: (0, _element.createElement)(_navigationSidebar.default, {
45
- defaultIsOpen: isDesktopViewport,
46
- activeTemplateType: templateType
87
+ activeTemplateType: templateType,
88
+ isDefaultOpen: true
47
89
  }),
90
+ notices: (0, _element.createElement)(_editor.EditorSnackbars, null),
48
91
  content: (0, _element.createElement)("main", {
49
92
  className: "edit-site-list-main"
50
93
  }, (0, _element.createElement)(_table.default, {
51
94
  templateType: templateType
52
- }))
95
+ })),
96
+ shortcuts: {
97
+ previous: previousShortcut,
98
+ next: nextShortcut
99
+ }
53
100
  });
54
101
  }
55
102
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-site/src/components/list/index.js"],"names":["List","templateType","isDesktopViewport","drawer"],"mappings":";;;;;;;;;;;AAGA;;AACA;;AACA;;AAKA;;AACA;;AACA;;AAZA;AACA;AACA;;AAKA;AACA;AACA;AAKe,SAASA,IAAT,OAAkC;AAAA,MAAnB;AAAEC,IAAAA;AAAF,GAAmB;AAChD,QAAMC,iBAAiB,GAAG,+BAAkB,QAAlB,CAA1B;AAEA,SACC,4BAAC,4BAAD;AACC,IAAA,SAAS,EAAC,gBADX;AAEC,IAAA,MAAM,EAAG;AACRC,MAAAA,MAAM,EAAE,cAAI,oBAAJ;AADA,KAFV;AAKC,IAAA,MAAM,EAAG,4BAAC,eAAD;AAAQ,MAAA,YAAY,EAAGF;AAAvB,MALV;AAMC,IAAA,MAAM,EACL,4BAAC,0BAAD;AACC,MAAA,aAAa,EAAGC,iBADjB;AAEC,MAAA,kBAAkB,EAAGD;AAFtB,MAPF;AAYC,IAAA,OAAO,EACN;AAAM,MAAA,SAAS,EAAC;AAAhB,OACC,4BAAC,cAAD;AAAO,MAAA,YAAY,EAAGA;AAAtB,MADD;AAbF,IADD;AAoBA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { InterfaceSkeleton } from '@wordpress/interface';\nimport { __ } from '@wordpress/i18n';\nimport { useViewportMatch } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport Header from './header';\nimport NavigationSidebar from '../navigation-sidebar';\nimport Table from './table';\n\nexport default function List( { templateType } ) {\n\tconst isDesktopViewport = useViewportMatch( 'medium' );\n\n\treturn (\n\t\t<InterfaceSkeleton\n\t\t\tclassName=\"edit-site-list\"\n\t\t\tlabels={ {\n\t\t\t\tdrawer: __( 'Navigation Sidebar' ),\n\t\t\t} }\n\t\t\theader={ <Header templateType={ templateType } /> }\n\t\t\tdrawer={\n\t\t\t\t<NavigationSidebar\n\t\t\t\t\tdefaultIsOpen={ isDesktopViewport }\n\t\t\t\t\tactiveTemplateType={ templateType }\n\t\t\t\t/>\n\t\t\t}\n\t\t\tcontent={\n\t\t\t\t<main className=\"edit-site-list-main\">\n\t\t\t\t\t<Table templateType={ templateType } />\n\t\t\t\t</main>\n\t\t\t}\n\t\t/>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-site/src/components/list/index.js"],"names":["List","templateType","previousShortcut","nextShortcut","isNavigationOpen","select","keyboardShortcutsStore","getAllShortcutKeyCombinations","editSiteStore","isNavigationOpened","postType","coreStore","getPostType","itemsListLabel","labels","items_list","detailedRegionLabels","header","body","undefined","drawer","previous","next"],"mappings":";;;;;;;;;;;AAGA;;AAKA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAKA;;AACA;;AACA;;AACA;;AACA;;AAtBA;AACA;AACA;;AAGA;AACA;AACA;;AAQA;AACA;AACA;AAOe,SAASA,IAAT,OAAkC;AAAA;;AAAA,MAAnB;AAAEC,IAAAA;AAAF,GAAmB;AAChD;AAEA,QAAM;AAAEC,IAAAA,gBAAF;AAAoBC,IAAAA,YAApB;AAAkCC,IAAAA;AAAlC,MAAuD,qBAC1DC,MAAF,IAAc;AACb,WAAO;AACNH,MAAAA,gBAAgB,EAAEG,MAAM,CACvBC,wBADuB,CAAN,CAEhBC,6BAFgB,CAGjB,gCAHiB,CADZ;AAMNJ,MAAAA,YAAY,EAAEE,MAAM,CACnBC,wBADmB,CAAN,CAEZC,6BAFY,CAEmB,4BAFnB,CANR;AASNH,MAAAA,gBAAgB,EAAEC,MAAM,CAAEG,YAAF,CAAN,CAAwBC,kBAAxB;AATZ,KAAP;AAWA,GAb2D,EAc5D,EAd4D,CAA7D;AAiBA,QAAMC,QAAQ,GAAG,qBACdL,MAAF,IAAcA,MAAM,CAAEM,eAAF,CAAN,CAAoBC,WAApB,CAAiCX,YAAjC,CADE,EAEhB,CAAEA,YAAF,CAFgB,CAAjB,CApBgD,CAyBhD;AACA;;AACA,QAAMY,cAAc,GAAGH,QAAH,aAAGA,QAAH,2CAAGA,QAAQ,CAAEI,MAAb,qDAAG,iBAAkBC,UAAzC;AACA,QAAMC,oBAAoB,GAAGN,QAAQ,GAClC;AACAO,IAAAA,MAAM,EAAE,oBACP;AACA,kBAAI,aAAJ,CAFO,EAGPJ,cAHO,CADR;AAMAK,IAAAA,IAAI,EAAE,oBACL;AACA,kBAAI,cAAJ,CAFK,EAGLL,cAHK;AANN,GADkC,GAalCM,SAbH;AAeA,SACC,4BAAC,4BAAD;AACC,IAAA,SAAS,EAAG,yBAAY,gBAAZ,EAA8B;AACzC,4BAAsBf;AADmB,KAA9B,CADb;AAIC,IAAA,MAAM,EAAG;AACRgB,MAAAA,MAAM,EAAE,cAAI,oBAAJ,CADA;AAER,SAAGJ;AAFK,KAJV;AAQC,IAAA,MAAM,EAAG,4BAAC,eAAD;AAAQ,MAAA,YAAY,EAAGf;AAAvB,MARV;AASC,IAAA,MAAM,EACL,4BAAC,0BAAD;AACC,MAAA,kBAAkB,EAAGA,YADtB;AAEC,MAAA,aAAa;AAFd,MAVF;AAeC,IAAA,OAAO,EAAG,4BAAC,uBAAD,OAfX;AAgBC,IAAA,OAAO,EACN;AAAM,MAAA,SAAS,EAAC;AAAhB,OACC,4BAAC,cAAD;AAAO,MAAA,YAAY,EAAGA;AAAtB,MADD,CAjBF;AAqBC,IAAA,SAAS,EAAG;AACXoB,MAAAA,QAAQ,EAAEnB,gBADC;AAEXoB,MAAAA,IAAI,EAAEnB;AAFK;AArBb,IADD;AA4BA","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport { InterfaceSkeleton } from '@wordpress/interface';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';\nimport { EditorSnackbars } from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport useRegisterShortcuts from './use-register-shortcuts';\nimport Header from './header';\nimport NavigationSidebar from '../navigation-sidebar';\nimport Table from './table';\nimport { store as editSiteStore } from '../../store';\n\nexport default function List( { templateType } ) {\n\tuseRegisterShortcuts();\n\n\tconst { previousShortcut, nextShortcut, isNavigationOpen } = useSelect(\n\t\t( select ) => {\n\t\t\treturn {\n\t\t\t\tpreviousShortcut: select(\n\t\t\t\t\tkeyboardShortcutsStore\n\t\t\t\t).getAllShortcutKeyCombinations(\n\t\t\t\t\t'core/edit-site/previous-region'\n\t\t\t\t),\n\t\t\t\tnextShortcut: select(\n\t\t\t\t\tkeyboardShortcutsStore\n\t\t\t\t).getAllShortcutKeyCombinations( 'core/edit-site/next-region' ),\n\t\t\t\tisNavigationOpen: select( editSiteStore ).isNavigationOpened(),\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tconst postType = useSelect(\n\t\t( select ) => select( coreStore ).getPostType( templateType ),\n\t\t[ templateType ]\n\t);\n\n\t// `postType` could load in asynchronously. Only provide the detailed region labels if\n\t// the postType has loaded, otherwise `InterfaceSkeleton` will fallback to the defaults.\n\tconst itemsListLabel = postType?.labels?.items_list;\n\tconst detailedRegionLabels = postType\n\t\t? {\n\t\t\t\theader: sprintf(\n\t\t\t\t\t// translators: %s - the name of the page, 'Header' as in the header area of that page.\n\t\t\t\t\t__( '%s - Header' ),\n\t\t\t\t\titemsListLabel\n\t\t\t\t),\n\t\t\t\tbody: sprintf(\n\t\t\t\t\t// translators: %s - the name of the page, 'Content' as in the content area of that page.\n\t\t\t\t\t__( '%s - Content' ),\n\t\t\t\t\titemsListLabel\n\t\t\t\t),\n\t\t }\n\t\t: undefined;\n\n\treturn (\n\t\t<InterfaceSkeleton\n\t\t\tclassName={ classnames( 'edit-site-list', {\n\t\t\t\t'is-navigation-open': isNavigationOpen,\n\t\t\t} ) }\n\t\t\tlabels={ {\n\t\t\t\tdrawer: __( 'Navigation Sidebar' ),\n\t\t\t\t...detailedRegionLabels,\n\t\t\t} }\n\t\t\theader={ <Header templateType={ templateType } /> }\n\t\t\tdrawer={\n\t\t\t\t<NavigationSidebar\n\t\t\t\t\tactiveTemplateType={ templateType }\n\t\t\t\t\tisDefaultOpen\n\t\t\t\t/>\n\t\t\t}\n\t\t\tnotices={ <EditorSnackbars /> }\n\t\t\tcontent={\n\t\t\t\t<main className=\"edit-site-list-main\">\n\t\t\t\t\t<Table templateType={ templateType } />\n\t\t\t\t</main>\n\t\t\t}\n\t\t\tshortcuts={ {\n\t\t\t\tprevious: previousShortcut,\n\t\t\t\tnext: nextShortcut,\n\t\t\t} }\n\t\t/>\n\t);\n}\n"]}
@@ -17,13 +17,11 @@ var _i18n = require("@wordpress/i18n");
17
17
 
18
18
  var _components = require("@wordpress/components");
19
19
 
20
- var _icons = require("@wordpress/icons");
21
-
22
20
  var _url = require("@wordpress/url");
23
21
 
24
- var _store = require("../../store");
22
+ var _actions = _interopRequireDefault(require("./actions"));
25
23
 
26
- var _isTemplateRemovable = _interopRequireDefault(require("../../utils/is-template-removable"));
24
+ var _addedBy = _interopRequireDefault(require("./added-by"));
27
25
 
28
26
  /**
29
27
  * WordPress dependencies
@@ -32,26 +30,10 @@ var _isTemplateRemovable = _interopRequireDefault(require("../../utils/is-templa
32
30
  /**
33
31
  * Internal dependencies
34
32
  */
35
- function Actions(_ref) {
36
- let {
37
- template,
38
- onClose
39
- } = _ref;
40
- const {
41
- removeTemplate
42
- } = (0, _data.useDispatch)(_store.store);
43
- return (0, _element.createElement)(_components.MenuGroup, null, (0, _element.createElement)(_components.MenuItem, {
44
- onClick: () => {
45
- removeTemplate(template);
46
- onClose();
47
- }
48
- }, (0, _i18n.__)('Remove template')));
49
- }
50
-
51
- function Table(_ref2) {
33
+ function Table(_ref) {
52
34
  let {
53
35
  templateType
54
- } = _ref2;
36
+ } = _ref;
55
37
  const {
56
38
  templates,
57
39
  isLoading,
@@ -63,8 +45,12 @@ function Table(_ref2) {
63
45
  getPostType
64
46
  } = select(_coreData.store);
65
47
  return {
66
- templates: getEntityRecords('postType', templateType),
67
- isLoading: !hasFinishedResolution('getEntityRecords', ['postType', templateType]),
48
+ templates: getEntityRecords('postType', templateType, {
49
+ per_page: -1
50
+ }),
51
+ isLoading: !hasFinishedResolution('getEntityRecords', ['postType', templateType, {
52
+ per_page: -1
53
+ }]),
68
54
  postType: getPostType(templateType)
69
55
  };
70
56
  }, [templateType]);
@@ -80,49 +66,53 @@ function Table(_ref2) {
80
66
  (0, _i18n.__)('No %s found.'), postType === null || postType === void 0 ? void 0 : (_postType$labels = postType.labels) === null || _postType$labels === void 0 ? void 0 : (_postType$labels$name = _postType$labels.name) === null || _postType$labels$name === void 0 ? void 0 : _postType$labels$name.toLowerCase()));
81
67
  }
82
68
 
83
- return (0, _element.createElement)("ul", {
84
- className: "edit-site-list-table"
85
- }, (0, _element.createElement)(_components.__experimentalHStack, {
86
- className: "edit-site-list-table-head",
87
- as: "li"
88
- }, (0, _element.createElement)(_components.FlexItem, {
89
- className: "edit-site-list-table-column"
90
- }, (0, _element.createElement)(_components.__experimentalHeading, {
91
- level: 4
92
- }, (0, _i18n.__)('Template'))), (0, _element.createElement)(_components.FlexItem, {
93
- className: "edit-site-list-table-column"
94
- }, (0, _element.createElement)(_components.__experimentalHeading, {
95
- level: 4
96
- }, (0, _i18n.__)('Added by'))), (0, _element.createElement)(_components.FlexItem, {
97
- className: "edit-site-list-table-column"
98
- }, (0, _element.createElement)(_components.VisuallyHidden, null, (0, _i18n.__)('Actions')))), templates.map(template => (0, _element.createElement)("li", {
99
- key: template.id
100
- }, (0, _element.createElement)(_components.__experimentalHStack, {
101
- className: "edit-site-list-table-row"
102
- }, (0, _element.createElement)(_components.FlexItem, {
103
- className: "edit-site-list-table-column"
104
- }, (0, _element.createElement)("a", {
105
- href: (0, _url.addQueryArgs)('', {
106
- page: 'gutenberg-edit-site',
107
- postId: template.id,
108
- postType: template.type
109
- })
110
- }, template.title.rendered), template.description), (0, _element.createElement)(_components.FlexItem, {
111
- className: "edit-site-list-table-column"
112
- }, template.theme), (0, _element.createElement)(_components.FlexItem, {
113
- className: "edit-site-list-table-column"
114
- }, (0, _isTemplateRemovable.default)(template) && (0, _element.createElement)(_components.DropdownMenu, {
115
- icon: _icons.moreVertical,
116
- label: (0, _i18n.__)('Actions'),
117
- className: "edit-site-list-table__actions"
118
- }, _ref3 => {
119
- let {
120
- onClose
121
- } = _ref3;
122
- return (0, _element.createElement)(Actions, {
123
- template: template,
124
- onClose: onClose
125
- });
126
- }))))));
69
+ return (// These explicit aria roles are needed for Safari.
70
+ // See https://developer.mozilla.org/en-US/docs/Web/CSS/display#tables
71
+ (0, _element.createElement)("table", {
72
+ className: "edit-site-list-table",
73
+ role: "table"
74
+ }, (0, _element.createElement)("thead", null, (0, _element.createElement)("tr", {
75
+ className: "edit-site-list-table-head",
76
+ role: "row"
77
+ }, (0, _element.createElement)("th", {
78
+ className: "edit-site-list-table-column",
79
+ role: "columnheader"
80
+ }, (0, _i18n.__)('Template')), (0, _element.createElement)("th", {
81
+ className: "edit-site-list-table-column",
82
+ role: "columnheader"
83
+ }, (0, _i18n.__)('Added by')), (0, _element.createElement)("th", {
84
+ className: "edit-site-list-table-column",
85
+ role: "columnheader"
86
+ }, (0, _element.createElement)(_components.VisuallyHidden, null, (0, _i18n.__)('Actions'))))), (0, _element.createElement)("tbody", null, templates.map(template => {
87
+ var _template$title;
88
+
89
+ return (0, _element.createElement)("tr", {
90
+ key: template.id,
91
+ className: "edit-site-list-table-row",
92
+ role: "row"
93
+ }, (0, _element.createElement)("td", {
94
+ className: "edit-site-list-table-column",
95
+ role: "cell"
96
+ }, (0, _element.createElement)(_components.__experimentalHeading, {
97
+ level: 4
98
+ }, (0, _element.createElement)("a", {
99
+ href: (0, _url.addQueryArgs)(window.location.href, {
100
+ postId: template.id,
101
+ postType: template.type
102
+ })
103
+ }, ((_template$title = template.title) === null || _template$title === void 0 ? void 0 : _template$title.rendered) || template.slug)), template.description), (0, _element.createElement)("td", {
104
+ className: "edit-site-list-table-column",
105
+ role: "cell"
106
+ }, (0, _element.createElement)(_addedBy.default, {
107
+ templateType: templateType,
108
+ template: template
109
+ })), (0, _element.createElement)("td", {
110
+ className: "edit-site-list-table-column",
111
+ role: "cell"
112
+ }, (0, _element.createElement)(_actions.default, {
113
+ template: template
114
+ })));
115
+ })))
116
+ );
127
117
  }
128
118
  //# sourceMappingURL=table.js.map