@wordpress/edit-site 6.3.0 → 6.4.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 (221) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/add-new-pattern/index.js +8 -2
  3. package/build/components/add-new-pattern/index.js.map +1 -1
  4. package/build/components/add-new-template/index.js +3 -1
  5. package/build/components/add-new-template/index.js.map +1 -1
  6. package/build/components/block-editor/use-site-editor-settings.js +1 -82
  7. package/build/components/block-editor/use-site-editor-settings.js.map +1 -1
  8. package/build/components/global-styles/block-preview-panel.js +14 -5
  9. package/build/components/global-styles/block-preview-panel.js.map +1 -1
  10. package/build/components/global-styles/font-families.js +42 -23
  11. package/build/components/global-styles/font-families.js.map +1 -1
  12. package/build/components/global-styles/font-library-modal/index.js +4 -4
  13. package/build/components/global-styles/font-library-modal/index.js.map +1 -1
  14. package/build/components/global-styles/font-library-modal/installed-fonts.js +58 -10
  15. package/build/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  16. package/build/components/global-styles/font-sizes/confirm-delete-font-size-dialog.js +39 -0
  17. package/build/components/global-styles/font-sizes/confirm-delete-font-size-dialog.js.map +1 -0
  18. package/build/components/global-styles/font-sizes/confirm-reset-font-sizes-dialog.js +39 -0
  19. package/build/components/global-styles/font-sizes/confirm-reset-font-sizes-dialog.js.map +1 -0
  20. package/build/components/global-styles/font-sizes/font-size-preview.js +44 -0
  21. package/build/components/global-styles/font-sizes/font-size-preview.js.map +1 -0
  22. package/build/components/global-styles/font-sizes/font-size.js +213 -0
  23. package/build/components/global-styles/font-sizes/font-size.js.map +1 -0
  24. package/build/components/global-styles/font-sizes/font-sizes-count.js +50 -0
  25. package/build/components/global-styles/font-sizes/font-sizes-count.js.map +1 -0
  26. package/build/components/global-styles/font-sizes/font-sizes.js +163 -0
  27. package/build/components/global-styles/font-sizes/font-sizes.js.map +1 -0
  28. package/build/components/global-styles/font-sizes/rename-font-size-dialog.js +67 -0
  29. package/build/components/global-styles/font-sizes/rename-font-size-dialog.js.map +1 -0
  30. package/build/components/global-styles/screen-block.js +10 -8
  31. package/build/components/global-styles/screen-block.js.map +1 -1
  32. package/build/components/global-styles/screen-style-variations.js +2 -2
  33. package/build/components/global-styles/screen-style-variations.js.map +1 -1
  34. package/build/components/global-styles/screen-typography.js +3 -2
  35. package/build/components/global-styles/screen-typography.js.map +1 -1
  36. package/build/components/global-styles/size-control/index.js +85 -0
  37. package/build/components/global-styles/size-control/index.js.map +1 -0
  38. package/build/components/global-styles/style-variations-container.js +3 -0
  39. package/build/components/global-styles/style-variations-container.js.map +1 -1
  40. package/build/components/global-styles/ui.js +8 -0
  41. package/build/components/global-styles/ui.js.map +1 -1
  42. package/build/components/global-styles/variations/variations-color.js.map +1 -1
  43. package/build/components/global-styles/variations/variations-typography.js +1 -1
  44. package/build/components/global-styles/variations/variations-typography.js.map +1 -1
  45. package/build/components/layout/index.js +6 -0
  46. package/build/components/layout/index.js.map +1 -1
  47. package/build/components/layout/router.js +14 -6
  48. package/build/components/layout/router.js.map +1 -1
  49. package/build/components/page-patterns/header.js +1 -1
  50. package/build/components/page-patterns/header.js.map +1 -1
  51. package/build/components/page-patterns/index.js +23 -11
  52. package/build/components/page-patterns/index.js.map +1 -1
  53. package/build/components/page-templates/index.js +41 -34
  54. package/build/components/page-templates/index.js.map +1 -1
  55. package/build/components/post-edit/index.js +105 -0
  56. package/build/components/post-edit/index.js.map +1 -0
  57. package/build/components/post-fields/index.js +314 -0
  58. package/build/components/post-fields/index.js.map +1 -0
  59. package/build/components/post-list/index.js +281 -0
  60. package/build/components/post-list/index.js.map +1 -0
  61. package/build/components/posts-app/router.js +3 -3
  62. package/build/components/posts-app/router.js.map +1 -1
  63. package/build/components/sidebar-dataviews/default-views.js +22 -10
  64. package/build/components/sidebar-dataviews/default-views.js.map +1 -1
  65. package/build/components/sidebar-dataviews/index.js +40 -1
  66. package/build/components/sidebar-dataviews/index.js.map +1 -1
  67. package/build/components/sidebar-navigation-screen-global-styles/content.js +64 -0
  68. package/build/components/sidebar-navigation-screen-global-styles/content.js.map +1 -0
  69. package/build/components/sidebar-navigation-screen-global-styles/index.js +2 -47
  70. package/build/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  71. package/build/hooks/push-changes-to-global-styles/index.js +1 -1
  72. package/build/hooks/push-changes-to-global-styles/index.js.map +1 -1
  73. package/build/index.js +5 -1
  74. package/build/index.js.map +1 -1
  75. package/build/store/selectors.js +34 -6
  76. package/build/store/selectors.js.map +1 -1
  77. package/build/utils/get-filtered-template-parts.js +64 -0
  78. package/build/utils/get-filtered-template-parts.js.map +1 -0
  79. package/build-module/components/add-new-pattern/index.js +8 -2
  80. package/build-module/components/add-new-pattern/index.js.map +1 -1
  81. package/build-module/components/add-new-template/index.js +3 -1
  82. package/build-module/components/add-new-template/index.js.map +1 -1
  83. package/build-module/components/block-editor/use-site-editor-settings.js +1 -82
  84. package/build-module/components/block-editor/use-site-editor-settings.js.map +1 -1
  85. package/build-module/components/global-styles/block-preview-panel.js +14 -5
  86. package/build-module/components/global-styles/block-preview-panel.js.map +1 -1
  87. package/build-module/components/global-styles/font-families.js +44 -25
  88. package/build-module/components/global-styles/font-families.js.map +1 -1
  89. package/build-module/components/global-styles/font-library-modal/index.js +4 -4
  90. package/build-module/components/global-styles/font-library-modal/index.js.map +1 -1
  91. package/build-module/components/global-styles/font-library-modal/installed-fonts.js +61 -13
  92. package/build-module/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  93. package/build-module/components/global-styles/font-sizes/confirm-delete-font-size-dialog.js +32 -0
  94. package/build-module/components/global-styles/font-sizes/confirm-delete-font-size-dialog.js.map +1 -0
  95. package/build-module/components/global-styles/font-sizes/confirm-reset-font-sizes-dialog.js +32 -0
  96. package/build-module/components/global-styles/font-sizes/confirm-reset-font-sizes-dialog.js.map +1 -0
  97. package/build-module/components/global-styles/font-sizes/font-size-preview.js +37 -0
  98. package/build-module/components/global-styles/font-sizes/font-size-preview.js.map +1 -0
  99. package/build-module/components/global-styles/font-sizes/font-size.js +207 -0
  100. package/build-module/components/global-styles/font-sizes/font-size.js.map +1 -0
  101. package/build-module/components/global-styles/font-sizes/font-sizes-count.js +43 -0
  102. package/build-module/components/global-styles/font-sizes/font-sizes-count.js.map +1 -0
  103. package/build-module/components/global-styles/font-sizes/font-sizes.js +157 -0
  104. package/build-module/components/global-styles/font-sizes/font-sizes.js.map +1 -0
  105. package/build-module/components/global-styles/font-sizes/rename-font-size-dialog.js +61 -0
  106. package/build-module/components/global-styles/font-sizes/rename-font-size-dialog.js.map +1 -0
  107. package/build-module/components/global-styles/screen-block.js +10 -8
  108. package/build-module/components/global-styles/screen-block.js.map +1 -1
  109. package/build-module/components/global-styles/screen-style-variations.js +2 -2
  110. package/build-module/components/global-styles/screen-style-variations.js.map +1 -1
  111. package/build-module/components/global-styles/screen-typography.js +3 -2
  112. package/build-module/components/global-styles/screen-typography.js.map +1 -1
  113. package/build-module/components/global-styles/size-control/index.js +79 -0
  114. package/build-module/components/global-styles/size-control/index.js.map +1 -0
  115. package/build-module/components/global-styles/style-variations-container.js +3 -0
  116. package/build-module/components/global-styles/style-variations-container.js.map +1 -1
  117. package/build-module/components/global-styles/ui.js +8 -0
  118. package/build-module/components/global-styles/ui.js.map +1 -1
  119. package/build-module/components/global-styles/variations/variations-color.js +1 -1
  120. package/build-module/components/global-styles/variations/variations-color.js.map +1 -1
  121. package/build-module/components/global-styles/variations/variations-typography.js +1 -2
  122. package/build-module/components/global-styles/variations/variations-typography.js.map +1 -1
  123. package/build-module/components/layout/index.js +6 -0
  124. package/build-module/components/layout/index.js.map +1 -1
  125. package/build-module/components/layout/router.js +14 -6
  126. package/build-module/components/layout/router.js.map +1 -1
  127. package/build-module/components/page-patterns/header.js +1 -1
  128. package/build-module/components/page-patterns/header.js.map +1 -1
  129. package/build-module/components/page-patterns/index.js +23 -11
  130. package/build-module/components/page-patterns/index.js.map +1 -1
  131. package/build-module/components/page-templates/index.js +43 -37
  132. package/build-module/components/page-templates/index.js.map +1 -1
  133. package/build-module/components/post-edit/index.js +98 -0
  134. package/build-module/components/post-edit/index.js.map +1 -0
  135. package/build-module/components/post-fields/index.js +306 -0
  136. package/build-module/components/post-fields/index.js.map +1 -0
  137. package/build-module/components/post-list/index.js +275 -0
  138. package/build-module/components/post-list/index.js.map +1 -0
  139. package/build-module/components/posts-app/router.js +3 -3
  140. package/build-module/components/posts-app/router.js.map +1 -1
  141. package/build-module/components/sidebar-dataviews/default-views.js +21 -9
  142. package/build-module/components/sidebar-dataviews/default-views.js.map +1 -1
  143. package/build-module/components/sidebar-dataviews/index.js +42 -3
  144. package/build-module/components/sidebar-dataviews/index.js.map +1 -1
  145. package/build-module/components/sidebar-navigation-screen-global-styles/content.js +57 -0
  146. package/build-module/components/sidebar-navigation-screen-global-styles/content.js.map +1 -0
  147. package/build-module/components/sidebar-navigation-screen-global-styles/index.js +2 -47
  148. package/build-module/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  149. package/build-module/hooks/push-changes-to-global-styles/index.js +1 -1
  150. package/build-module/hooks/push-changes-to-global-styles/index.js.map +1 -1
  151. package/build-module/index.js +5 -1
  152. package/build-module/index.js.map +1 -1
  153. package/build-module/store/selectors.js +35 -7
  154. package/build-module/store/selectors.js.map +1 -1
  155. package/build-module/utils/get-filtered-template-parts.js +57 -0
  156. package/build-module/utils/get-filtered-template-parts.js.map +1 -0
  157. package/build-style/posts-rtl.css +581 -503
  158. package/build-style/posts.css +581 -503
  159. package/build-style/style-rtl.css +621 -519
  160. package/build-style/style.css +621 -519
  161. package/package.json +41 -41
  162. package/src/components/add-new-pattern/index.js +8 -2
  163. package/src/components/add-new-template/index.js +4 -1
  164. package/src/components/add-new-template/style.scss +4 -6
  165. package/src/components/block-editor/use-site-editor-settings.js +15 -111
  166. package/src/components/global-styles/block-preview-panel.js +22 -9
  167. package/src/components/global-styles/font-families.js +66 -31
  168. package/src/components/global-styles/font-library-modal/index.js +4 -2
  169. package/src/components/global-styles/font-library-modal/installed-fonts.js +92 -11
  170. package/src/components/global-styles/font-library-modal/style.scss +9 -0
  171. package/src/components/global-styles/font-sizes/confirm-delete-font-size-dialog.js +43 -0
  172. package/src/components/global-styles/font-sizes/confirm-reset-font-sizes-dialog.js +37 -0
  173. package/src/components/global-styles/font-sizes/font-size-preview.js +43 -0
  174. package/src/components/global-styles/font-sizes/font-size.js +250 -0
  175. package/src/components/global-styles/font-sizes/font-sizes-count.js +40 -0
  176. package/src/components/global-styles/font-sizes/font-sizes.js +263 -0
  177. package/src/components/global-styles/font-sizes/rename-font-size-dialog.js +70 -0
  178. package/src/components/global-styles/screen-block.js +12 -14
  179. package/src/components/global-styles/screen-style-variations.js +2 -2
  180. package/src/components/global-styles/screen-typography.js +3 -2
  181. package/src/components/global-styles/size-control/index.js +86 -0
  182. package/src/components/global-styles/style-variations-container.js +4 -0
  183. package/src/components/global-styles/style.scss +13 -3
  184. package/src/components/global-styles/ui.js +10 -0
  185. package/src/components/global-styles/variations/variations-color.js +1 -1
  186. package/src/components/global-styles/variations/variations-typography.js +1 -2
  187. package/src/components/layout/index.js +11 -0
  188. package/src/components/layout/router.js +13 -5
  189. package/src/components/layout/style.scss +26 -8
  190. package/src/components/page-patterns/header.js +1 -1
  191. package/src/components/page-patterns/index.js +15 -8
  192. package/src/components/page-templates/index.js +51 -46
  193. package/src/components/page-templates/style.scss +5 -3
  194. package/src/components/post-edit/index.js +96 -0
  195. package/src/components/post-edit/style.scss +9 -0
  196. package/src/components/post-fields/index.js +345 -0
  197. package/src/components/post-list/index.js +326 -0
  198. package/src/components/{posts-app → post-list}/style.scss +12 -9
  199. package/src/components/posts-app/router.js +3 -3
  200. package/src/components/sidebar-dataviews/default-views.js +21 -9
  201. package/src/components/sidebar-dataviews/index.js +36 -1
  202. package/src/components/sidebar-navigation-screen-global-styles/content.js +55 -0
  203. package/src/components/sidebar-navigation-screen-global-styles/index.js +1 -55
  204. package/src/hooks/push-changes-to-global-styles/index.js +1 -1
  205. package/src/index.js +7 -1
  206. package/src/posts.scss +1 -1
  207. package/src/store/selectors.js +53 -14
  208. package/src/store/test/selectors.js +1 -26
  209. package/src/style.scss +2 -1
  210. package/src/utils/get-filtered-template-parts.js +61 -0
  211. package/src/utils/test/get-filtered-template-parts.js +127 -0
  212. package/build/components/global-styles/screen-background.js +0 -36
  213. package/build/components/global-styles/screen-background.js.map +0 -1
  214. package/build/components/posts-app/posts-list.js +0 -568
  215. package/build/components/posts-app/posts-list.js.map +0 -1
  216. package/build-module/components/global-styles/screen-background.js +0 -30
  217. package/build-module/components/global-styles/screen-background.js.map +0 -1
  218. package/build-module/components/posts-app/posts-list.js +0 -560
  219. package/build-module/components/posts-app/posts-list.js.map +0 -1
  220. package/src/components/global-styles/screen-background.js +0 -29
  221. package/src/components/posts-app/posts-list.js +0 -651
@@ -0,0 +1,213 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _blockEditor = require("@wordpress/block-editor");
9
+ var _i18n = require("@wordpress/i18n");
10
+ var _components = require("@wordpress/components");
11
+ var _icons = require("@wordpress/icons");
12
+ var _element = require("@wordpress/element");
13
+ var _lockUnlock = require("../../../lock-unlock");
14
+ var _header = _interopRequireDefault(require("../header"));
15
+ var _fontSizePreview = _interopRequireDefault(require("./font-size-preview"));
16
+ var _confirmDeleteFontSizeDialog = _interopRequireDefault(require("./confirm-delete-font-size-dialog"));
17
+ var _renameFontSizeDialog = _interopRequireDefault(require("./rename-font-size-dialog"));
18
+ var _sizeControl = _interopRequireDefault(require("../size-control"));
19
+ var _jsxRuntime = require("react/jsx-runtime");
20
+ /**
21
+ * WordPress dependencies
22
+ */
23
+
24
+ /**
25
+ * Internal dependencies
26
+ */
27
+
28
+ const {
29
+ DropdownMenuV2: DropdownMenu,
30
+ DropdownMenuItemV2: DropdownMenuItem,
31
+ DropdownMenuItemLabelV2: DropdownMenuItemLabel
32
+ } = (0, _lockUnlock.unlock)(_components.privateApis);
33
+ const {
34
+ useGlobalSetting
35
+ } = (0, _lockUnlock.unlock)(_blockEditor.privateApis);
36
+ function FontSize() {
37
+ var _fontSizes$origin, _fontSize$fluid;
38
+ const [isDeleteConfirmOpen, setIsDeleteConfirmOpen] = (0, _element.useState)(false);
39
+ const [isRenameDialogOpen, setIsRenameDialogOpen] = (0, _element.useState)(false);
40
+ const {
41
+ params: {
42
+ origin,
43
+ slug
44
+ },
45
+ goBack,
46
+ goTo
47
+ } = (0, _components.__experimentalUseNavigator)();
48
+ const [fontSizes, setFontSizes] = useGlobalSetting('typography.fontSizes');
49
+
50
+ // Get the font sizes from the origin, default to empty array.
51
+ const sizes = (_fontSizes$origin = fontSizes[origin]) !== null && _fontSizes$origin !== void 0 ? _fontSizes$origin : [];
52
+
53
+ // Get the font size by slug.
54
+ const fontSize = sizes.find(size => size.slug === slug);
55
+
56
+ // Whether fluid is true or an object, set it to true, otherwise false.
57
+ const isFluid = (_fontSize$fluid = !!fontSize.fluid) !== null && _fontSize$fluid !== void 0 ? _fontSize$fluid : false;
58
+
59
+ // Whether custom fluid values are used.
60
+ const isCustomFluid = typeof fontSize.fluid === 'object';
61
+ const handleNameChange = value => {
62
+ updateFontSize('name', value);
63
+ };
64
+ const handleFontSizeChange = value => {
65
+ updateFontSize('size', value);
66
+ };
67
+ const handleFluidChange = value => {
68
+ updateFontSize('fluid', value);
69
+ };
70
+ const handleCustomFluidValues = value => {
71
+ if (value) {
72
+ // If custom values are used, init the values with the current ones.
73
+ updateFontSize('fluid', {
74
+ min: fontSize.size,
75
+ max: fontSize.size
76
+ });
77
+ } else {
78
+ // If custom fluid values are disabled, set fluid to true.
79
+ updateFontSize('fluid', true);
80
+ }
81
+ };
82
+ const handleMinChange = value => {
83
+ updateFontSize('fluid', {
84
+ ...fontSize.fluid,
85
+ min: value
86
+ });
87
+ };
88
+ const handleMaxChange = value => {
89
+ updateFontSize('fluid', {
90
+ ...fontSize.fluid,
91
+ max: value
92
+ });
93
+ };
94
+ const updateFontSize = (key, value) => {
95
+ const newFontSizes = sizes.map(size => {
96
+ if (size.slug === slug) {
97
+ return {
98
+ ...size,
99
+ [key]: value
100
+ }; // Create a new object with updated key
101
+ }
102
+ return size;
103
+ });
104
+ setFontSizes({
105
+ ...fontSizes,
106
+ [origin]: newFontSizes
107
+ });
108
+ };
109
+ const handleRemoveFontSize = () => {
110
+ // Navigate to the font sizes list.
111
+ goBack();
112
+ const newFontSizes = sizes.filter(size => size.slug !== slug);
113
+ setFontSizes({
114
+ ...fontSizes,
115
+ [origin]: newFontSizes
116
+ });
117
+ };
118
+ const toggleDeleteConfirm = () => {
119
+ setIsDeleteConfirmOpen(!isDeleteConfirmOpen);
120
+ };
121
+ const toggleRenameDialog = () => {
122
+ setIsRenameDialogOpen(!isRenameDialogOpen);
123
+ };
124
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
125
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_confirmDeleteFontSizeDialog.default, {
126
+ fontSize: fontSize,
127
+ isOpen: isDeleteConfirmOpen,
128
+ toggleOpen: toggleDeleteConfirm,
129
+ handleRemoveFontSize: handleRemoveFontSize
130
+ }), isRenameDialogOpen && /*#__PURE__*/(0, _jsxRuntime.jsx)(_renameFontSizeDialog.default, {
131
+ fontSize: fontSize,
132
+ toggleOpen: toggleRenameDialog,
133
+ handleRename: handleNameChange
134
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalVStack, {
135
+ spacing: 4,
136
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalHStack, {
137
+ justify: "space-between",
138
+ align: "flex-start",
139
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_header.default, {
140
+ title: fontSize.name,
141
+ description: (0, _i18n.sprintf)( /* translators: %s: font size preset name. */
142
+ (0, _i18n.__)('Manage the font size %s.'), fontSize.name),
143
+ onBack: () => goTo('/typography/font-sizes/')
144
+ }), origin === 'custom' && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.FlexItem, {
145
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalSpacer, {
146
+ marginTop: 3,
147
+ marginBottom: 0,
148
+ paddingX: 4,
149
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(DropdownMenu, {
150
+ trigger: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
151
+ size: "small",
152
+ icon: _icons.moreVertical,
153
+ label: (0, _i18n.__)('Font size options')
154
+ }),
155
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(DropdownMenuItem, {
156
+ onClick: toggleRenameDialog,
157
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(DropdownMenuItemLabel, {
158
+ children: (0, _i18n.__)('Rename')
159
+ })
160
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(DropdownMenuItem, {
161
+ onClick: toggleDeleteConfirm,
162
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(DropdownMenuItemLabel, {
163
+ children: (0, _i18n.__)('Delete')
164
+ })
165
+ })]
166
+ })
167
+ })
168
+ })]
169
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalView, {
170
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalSpacer, {
171
+ paddingX: 4,
172
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalVStack, {
173
+ spacing: 4,
174
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.FlexItem, {
175
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_fontSizePreview.default, {
176
+ fontSize: fontSize
177
+ })
178
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_sizeControl.default, {
179
+ label: (0, _i18n.__)('Size'),
180
+ value: !isCustomFluid ? fontSize.size : '',
181
+ onChange: handleFontSizeChange,
182
+ disabled: isCustomFluid
183
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.ToggleControl, {
184
+ label: (0, _i18n.__)('Fluid typography'),
185
+ help: (0, _i18n.__)('Scale the font size dynamically to fit the screen or viewport.'),
186
+ checked: isFluid,
187
+ onChange: handleFluidChange,
188
+ __nextHasNoMarginBottom: true
189
+ }), isFluid && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.ToggleControl, {
190
+ label: (0, _i18n.__)('Custom fluid values'),
191
+ help: (0, _i18n.__)('Set custom min and max values for the fluid font size.'),
192
+ checked: isCustomFluid,
193
+ onChange: handleCustomFluidValues,
194
+ __nextHasNoMarginBottom: true
195
+ }), isCustomFluid && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
196
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_sizeControl.default, {
197
+ label: (0, _i18n.__)('Minimum'),
198
+ value: fontSize.fluid?.min,
199
+ onChange: handleMinChange
200
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_sizeControl.default, {
201
+ label: (0, _i18n.__)('Maximum'),
202
+ value: fontSize.fluid?.max,
203
+ onChange: handleMaxChange
204
+ })]
205
+ })]
206
+ })
207
+ })
208
+ })]
209
+ })]
210
+ });
211
+ }
212
+ var _default = exports.default = FontSize;
213
+ //# sourceMappingURL=font-size.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_blockEditor","require","_i18n","_components","_icons","_element","_lockUnlock","_header","_interopRequireDefault","_fontSizePreview","_confirmDeleteFontSizeDialog","_renameFontSizeDialog","_sizeControl","_jsxRuntime","DropdownMenuV2","DropdownMenu","DropdownMenuItemV2","DropdownMenuItem","DropdownMenuItemLabelV2","DropdownMenuItemLabel","unlock","componentsPrivateApis","useGlobalSetting","blockEditorPrivateApis","FontSize","_fontSizes$origin","_fontSize$fluid","isDeleteConfirmOpen","setIsDeleteConfirmOpen","useState","isRenameDialogOpen","setIsRenameDialogOpen","params","origin","slug","goBack","goTo","useNavigator","fontSizes","setFontSizes","sizes","fontSize","find","size","isFluid","fluid","isCustomFluid","handleNameChange","value","updateFontSize","handleFontSizeChange","handleFluidChange","handleCustomFluidValues","min","max","handleMinChange","handleMaxChange","key","newFontSizes","map","handleRemoveFontSize","filter","toggleDeleteConfirm","toggleRenameDialog","jsxs","Fragment","children","jsx","default","isOpen","toggleOpen","handleRename","__experimentalVStack","spacing","__experimentalHStack","justify","align","title","name","description","sprintf","__","onBack","FlexItem","__experimentalSpacer","marginTop","marginBottom","paddingX","trigger","Button","icon","moreVertical","label","onClick","__experimentalView","onChange","disabled","ToggleControl","help","checked","__nextHasNoMarginBottom","_default","exports"],"sources":["@wordpress/edit-site/src/components/global-styles/font-sizes/font-size.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\t__experimentalSpacer as Spacer,\n\t__experimentalUseNavigator as useNavigator,\n\t__experimentalView as View,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tprivateApis as componentsPrivateApis,\n\tButton,\n\tFlexItem,\n\tToggleControl,\n} from '@wordpress/components';\nimport { moreVertical } from '@wordpress/icons';\nimport { useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../../lock-unlock';\nconst {\n\tDropdownMenuV2: DropdownMenu,\n\tDropdownMenuItemV2: DropdownMenuItem,\n\tDropdownMenuItemLabelV2: DropdownMenuItemLabel,\n} = unlock( componentsPrivateApis );\nconst { useGlobalSetting } = unlock( blockEditorPrivateApis );\nimport ScreenHeader from '../header';\nimport FontSizePreview from './font-size-preview';\nimport ConfirmDeleteFontSizeDialog from './confirm-delete-font-size-dialog';\nimport RenameFontSizeDialog from './rename-font-size-dialog';\nimport SizeControl from '../size-control';\n\nfunction FontSize() {\n\tconst [ isDeleteConfirmOpen, setIsDeleteConfirmOpen ] = useState( false );\n\tconst [ isRenameDialogOpen, setIsRenameDialogOpen ] = useState( false );\n\n\tconst {\n\t\tparams: { origin, slug },\n\t\tgoBack,\n\t\tgoTo,\n\t} = useNavigator();\n\n\tconst [ fontSizes, setFontSizes ] = useGlobalSetting(\n\t\t'typography.fontSizes'\n\t);\n\n\t// Get the font sizes from the origin, default to empty array.\n\tconst sizes = fontSizes[ origin ] ?? [];\n\n\t// Get the font size by slug.\n\tconst fontSize = sizes.find( ( size ) => size.slug === slug );\n\n\t// Whether fluid is true or an object, set it to true, otherwise false.\n\tconst isFluid = !! fontSize.fluid ?? false;\n\n\t// Whether custom fluid values are used.\n\tconst isCustomFluid = typeof fontSize.fluid === 'object';\n\n\tconst handleNameChange = ( value ) => {\n\t\tupdateFontSize( 'name', value );\n\t};\n\n\tconst handleFontSizeChange = ( value ) => {\n\t\tupdateFontSize( 'size', value );\n\t};\n\n\tconst handleFluidChange = ( value ) => {\n\t\tupdateFontSize( 'fluid', value );\n\t};\n\n\tconst handleCustomFluidValues = ( value ) => {\n\t\tif ( value ) {\n\t\t\t// If custom values are used, init the values with the current ones.\n\t\t\tupdateFontSize( 'fluid', {\n\t\t\t\tmin: fontSize.size,\n\t\t\t\tmax: fontSize.size,\n\t\t\t} );\n\t\t} else {\n\t\t\t// If custom fluid values are disabled, set fluid to true.\n\t\t\tupdateFontSize( 'fluid', true );\n\t\t}\n\t};\n\n\tconst handleMinChange = ( value ) => {\n\t\tupdateFontSize( 'fluid', { ...fontSize.fluid, min: value } );\n\t};\n\n\tconst handleMaxChange = ( value ) => {\n\t\tupdateFontSize( 'fluid', { ...fontSize.fluid, max: value } );\n\t};\n\n\tconst updateFontSize = ( key, value ) => {\n\t\tconst newFontSizes = sizes.map( ( size ) => {\n\t\t\tif ( size.slug === slug ) {\n\t\t\t\treturn { ...size, [ key ]: value }; // Create a new object with updated key\n\t\t\t}\n\t\t\treturn size;\n\t\t} );\n\n\t\tsetFontSizes( {\n\t\t\t...fontSizes,\n\t\t\t[ origin ]: newFontSizes,\n\t\t} );\n\t};\n\n\tconst handleRemoveFontSize = () => {\n\t\t// Navigate to the font sizes list.\n\t\tgoBack();\n\n\t\tconst newFontSizes = sizes.filter( ( size ) => size.slug !== slug );\n\t\tsetFontSizes( {\n\t\t\t...fontSizes,\n\t\t\t[ origin ]: newFontSizes,\n\t\t} );\n\t};\n\n\tconst toggleDeleteConfirm = () => {\n\t\tsetIsDeleteConfirmOpen( ! isDeleteConfirmOpen );\n\t};\n\n\tconst toggleRenameDialog = () => {\n\t\tsetIsRenameDialogOpen( ! isRenameDialogOpen );\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<ConfirmDeleteFontSizeDialog\n\t\t\t\tfontSize={ fontSize }\n\t\t\t\tisOpen={ isDeleteConfirmOpen }\n\t\t\t\ttoggleOpen={ toggleDeleteConfirm }\n\t\t\t\thandleRemoveFontSize={ handleRemoveFontSize }\n\t\t\t/>\n\n\t\t\t{ isRenameDialogOpen && (\n\t\t\t\t<RenameFontSizeDialog\n\t\t\t\t\tfontSize={ fontSize }\n\t\t\t\t\ttoggleOpen={ toggleRenameDialog }\n\t\t\t\t\thandleRename={ handleNameChange }\n\t\t\t\t/>\n\t\t\t) }\n\n\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t<HStack justify=\"space-between\" align=\"flex-start\">\n\t\t\t\t\t<ScreenHeader\n\t\t\t\t\t\ttitle={ fontSize.name }\n\t\t\t\t\t\tdescription={ sprintf(\n\t\t\t\t\t\t\t/* translators: %s: font size preset name. */\n\t\t\t\t\t\t\t__( 'Manage the font size %s.' ),\n\t\t\t\t\t\t\tfontSize.name\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tonBack={ () => goTo( '/typography/font-sizes/' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t{ origin === 'custom' && (\n\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t<Spacer\n\t\t\t\t\t\t\t\tmarginTop={ 3 }\n\t\t\t\t\t\t\t\tmarginBottom={ 0 }\n\t\t\t\t\t\t\t\tpaddingX={ 4 }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<DropdownMenu\n\t\t\t\t\t\t\t\t\ttrigger={\n\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Font size options' ) }\n\t\t\t\t\t\t\t\t\t\t/>\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<DropdownMenuItem\n\t\t\t\t\t\t\t\t\t\tonClick={ toggleRenameDialog }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<DropdownMenuItemLabel>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Rename' ) }\n\t\t\t\t\t\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t\t\t\t\t\t<DropdownMenuItem\n\t\t\t\t\t\t\t\t\t\tonClick={ toggleDeleteConfirm }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<DropdownMenuItemLabel>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Delete' ) }\n\t\t\t\t\t\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t\t\t\t\t</DropdownMenu>\n\t\t\t\t\t\t\t</Spacer>\n\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t) }\n\t\t\t\t</HStack>\n\n\t\t\t\t<View>\n\t\t\t\t\t<Spacer paddingX={ 4 }>\n\t\t\t\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t\t<FontSizePreview fontSize={ fontSize } />\n\t\t\t\t\t\t\t</FlexItem>\n\n\t\t\t\t\t\t\t<SizeControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Size' ) }\n\t\t\t\t\t\t\t\tvalue={ ! isCustomFluid ? fontSize.size : '' }\n\t\t\t\t\t\t\t\tonChange={ handleFontSizeChange }\n\t\t\t\t\t\t\t\tdisabled={ isCustomFluid }\n\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Fluid typography' ) }\n\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t'Scale the font size dynamically to fit the screen or viewport.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tchecked={ isFluid }\n\t\t\t\t\t\t\t\tonChange={ handleFluidChange }\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t{ isFluid && (\n\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Custom fluid values' ) }\n\t\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t\t'Set custom min and max values for the fluid font size.'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\tchecked={ isCustomFluid }\n\t\t\t\t\t\t\t\t\tonChange={ handleCustomFluidValues }\n\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\n\t\t\t\t\t\t\t{ isCustomFluid && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<SizeControl\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Minimum' ) }\n\t\t\t\t\t\t\t\t\t\tvalue={ fontSize.fluid?.min }\n\t\t\t\t\t\t\t\t\t\tonChange={ handleMinChange }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<SizeControl\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Maximum' ) }\n\t\t\t\t\t\t\t\t\t\tvalue={ fontSize.fluid?.max }\n\t\t\t\t\t\t\t\t\t\tonChange={ handleMaxChange }\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</VStack>\n\t\t\t\t\t</Spacer>\n\t\t\t\t</View>\n\t\t\t</VStack>\n\t\t</>\n\t);\n}\n\nexport default FontSize;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _i18n = require("@wordpress/i18n");
9
+ var _components = require("@wordpress/components");
10
+ var _icons = require("@wordpress/icons");
11
+ var _subtitle = _interopRequireDefault(require("../subtitle"));
12
+ var _navigationButton = require("../navigation-button");
13
+ var _jsxRuntime = require("react/jsx-runtime");
14
+ /**
15
+ * WordPress dependencies
16
+ */
17
+
18
+ /**
19
+ * Internal dependencies
20
+ */
21
+
22
+ function FontSizes() {
23
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalVStack, {
24
+ spacing: 2,
25
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalHStack, {
26
+ justify: "space-between",
27
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_subtitle.default, {
28
+ level: 3,
29
+ children: (0, _i18n.__)('Font Sizes')
30
+ })
31
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalItemGroup, {
32
+ isBordered: true,
33
+ isSeparated: true,
34
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_navigationButton.NavigationButtonAsItem, {
35
+ path: "/typography/font-sizes/",
36
+ "aria-label": (0, _i18n.__)('Edit font size presets'),
37
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalHStack, {
38
+ direction: "row",
39
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.FlexItem, {
40
+ children: (0, _i18n.__)('Font size presets')
41
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.Icon, {
42
+ icon: (0, _i18n.isRTL)() ? _icons.chevronLeft : _icons.chevronRight
43
+ })]
44
+ })
45
+ })
46
+ })]
47
+ });
48
+ }
49
+ var _default = exports.default = FontSizes;
50
+ //# sourceMappingURL=font-sizes-count.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_i18n","require","_components","_icons","_subtitle","_interopRequireDefault","_navigationButton","_jsxRuntime","FontSizes","jsxs","__experimentalVStack","spacing","children","jsx","__experimentalHStack","justify","default","level","__","__experimentalItemGroup","isBordered","isSeparated","NavigationButtonAsItem","path","direction","FlexItem","Icon","icon","isRTL","chevronLeft","chevronRight","_default","exports"],"sources":["@wordpress/edit-site/src/components/global-styles/font-sizes/font-sizes-count.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, isRTL } from '@wordpress/i18n';\nimport {\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalVStack as VStack,\n\t__experimentalHStack as HStack,\n\tFlexItem,\n} from '@wordpress/components';\nimport { Icon, chevronLeft, chevronRight } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport Subtitle from '../subtitle';\nimport { NavigationButtonAsItem } from '../navigation-button';\n\nfunction FontSizes() {\n\treturn (\n\t\t<VStack spacing={ 2 }>\n\t\t\t<HStack justify=\"space-between\">\n\t\t\t\t<Subtitle level={ 3 }>{ __( 'Font Sizes' ) }</Subtitle>\n\t\t\t</HStack>\n\t\t\t<ItemGroup isBordered isSeparated>\n\t\t\t\t<NavigationButtonAsItem\n\t\t\t\t\tpath=\"/typography/font-sizes/\"\n\t\t\t\t\taria-label={ __( 'Edit font size presets' ) }\n\t\t\t\t>\n\t\t\t\t\t<HStack direction=\"row\">\n\t\t\t\t\t\t<FlexItem>{ __( 'Font size presets' ) }</FlexItem>\n\t\t\t\t\t\t<Icon icon={ isRTL() ? chevronLeft : chevronRight } />\n\t\t\t\t\t</HStack>\n\t\t\t\t</NavigationButtonAsItem>\n\t\t\t</ItemGroup>\n\t\t</VStack>\n\t);\n}\n\nexport default FontSizes;\n"],"mappings":";;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAMA,IAAAE,MAAA,GAAAF,OAAA;AAKA,IAAAG,SAAA,GAAAC,sBAAA,CAAAJ,OAAA;AACA,IAAAK,iBAAA,GAAAL,OAAA;AAA8D,IAAAM,WAAA,GAAAN,OAAA;AAhB9D;AACA;AACA;;AAUA;AACA;AACA;;AAIA,SAASO,SAASA,CAAA,EAAG;EACpB,oBACC,IAAAD,WAAA,CAAAE,IAAA,EAACP,WAAA,CAAAQ,oBAAM;IAACC,OAAO,EAAG,CAAG;IAAAC,QAAA,gBACpB,IAAAL,WAAA,CAAAM,GAAA,EAACX,WAAA,CAAAY,oBAAM;MAACC,OAAO,EAAC,eAAe;MAAAH,QAAA,eAC9B,IAAAL,WAAA,CAAAM,GAAA,EAACT,SAAA,CAAAY,OAAQ;QAACC,KAAK,EAAG,CAAG;QAAAL,QAAA,EAAG,IAAAM,QAAE,EAAE,YAAa;MAAC,CAAY;IAAC,CAChD,CAAC,eACT,IAAAX,WAAA,CAAAM,GAAA,EAACX,WAAA,CAAAiB,uBAAS;MAACC,UAAU;MAACC,WAAW;MAAAT,QAAA,eAChC,IAAAL,WAAA,CAAAM,GAAA,EAACP,iBAAA,CAAAgB,sBAAsB;QACtBC,IAAI,EAAC,yBAAyB;QAC9B,cAAa,IAAAL,QAAE,EAAE,wBAAyB,CAAG;QAAAN,QAAA,eAE7C,IAAAL,WAAA,CAAAE,IAAA,EAACP,WAAA,CAAAY,oBAAM;UAACU,SAAS,EAAC,KAAK;UAAAZ,QAAA,gBACtB,IAAAL,WAAA,CAAAM,GAAA,EAACX,WAAA,CAAAuB,QAAQ;YAAAb,QAAA,EAAG,IAAAM,QAAE,EAAE,mBAAoB;UAAC,CAAY,CAAC,eAClD,IAAAX,WAAA,CAAAM,GAAA,EAACV,MAAA,CAAAuB,IAAI;YAACC,IAAI,EAAG,IAAAC,WAAK,EAAC,CAAC,GAAGC,kBAAW,GAAGC;UAAc,CAAE,CAAC;QAAA,CAC/C;MAAC,CACc;IAAC,CACf,CAAC;EAAA,CACL,CAAC;AAEX;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAhB,OAAA,GAEcR,SAAS","ignoreList":[]}
@@ -0,0 +1,163 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _blockEditor = require("@wordpress/block-editor");
9
+ var _i18n = require("@wordpress/i18n");
10
+ var _components = require("@wordpress/components");
11
+ var _icons = require("@wordpress/icons");
12
+ var _element = require("@wordpress/element");
13
+ var _lockUnlock = require("../../../lock-unlock");
14
+ var _subtitle = _interopRequireDefault(require("../subtitle"));
15
+ var _navigationButton = require("../navigation-button");
16
+ var _utils = require("../utils");
17
+ var _header = _interopRequireDefault(require("../header"));
18
+ var _confirmResetFontSizesDialog = _interopRequireDefault(require("./confirm-reset-font-sizes-dialog"));
19
+ var _jsxRuntime = require("react/jsx-runtime");
20
+ /**
21
+ * WordPress dependencies
22
+ */
23
+
24
+ /**
25
+ * Internal dependencies
26
+ */
27
+
28
+ const {
29
+ DropdownMenuV2: DropdownMenu,
30
+ DropdownMenuItemV2: DropdownMenuItem,
31
+ DropdownMenuItemLabelV2: DropdownMenuItemLabel
32
+ } = (0, _lockUnlock.unlock)(_components.privateApis);
33
+ const {
34
+ useGlobalSetting
35
+ } = (0, _lockUnlock.unlock)(_blockEditor.privateApis);
36
+ function FontSizeGroup({
37
+ label,
38
+ origin,
39
+ sizes,
40
+ handleAddFontSize,
41
+ handleResetFontSizes
42
+ }) {
43
+ const [isResetDialogOpen, setIsResetDialogOpen] = (0, _element.useState)(false);
44
+ const toggleResetDialog = () => setIsResetDialogOpen(!isResetDialogOpen);
45
+ const resetDialogText = origin === 'custom' ? (0, _i18n.__)('Are you sure you want to remove all custom font size presets?') : (0, _i18n.__)('Are you sure you want to reset all font size presets to their default values?');
46
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
47
+ children: [isResetDialogOpen && /*#__PURE__*/(0, _jsxRuntime.jsx)(_confirmResetFontSizesDialog.default, {
48
+ text: resetDialogText,
49
+ confirmButtonText: origin === 'custom' ? (0, _i18n.__)('Remove') : (0, _i18n.__)('Reset'),
50
+ isOpen: isResetDialogOpen,
51
+ toggleOpen: toggleResetDialog,
52
+ onConfirm: handleResetFontSizes
53
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalVStack, {
54
+ spacing: 4,
55
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalHStack, {
56
+ justify: "space-between",
57
+ align: "center",
58
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_subtitle.default, {
59
+ level: 3,
60
+ children: label
61
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.FlexItem, {
62
+ children: [origin === 'custom' && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
63
+ label: (0, _i18n.__)('Add font size'),
64
+ icon: _icons.plus,
65
+ size: "small",
66
+ onClick: handleAddFontSize
67
+ }), !!handleResetFontSizes && /*#__PURE__*/(0, _jsxRuntime.jsx)(DropdownMenu, {
68
+ trigger: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
69
+ size: "small",
70
+ icon: _icons.moreVertical,
71
+ label: (0, _i18n.__)('Font size presets options')
72
+ }),
73
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(DropdownMenuItem, {
74
+ onClick: toggleResetDialog,
75
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(DropdownMenuItemLabel, {
76
+ children: origin === 'custom' ? (0, _i18n.__)('Remove font size presets') : (0, _i18n.__)('Reset font size presets')
77
+ })
78
+ })
79
+ })]
80
+ })]
81
+ }), !!sizes.length && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalItemGroup, {
82
+ isBordered: true,
83
+ isSeparated: true,
84
+ children: sizes.map(size => /*#__PURE__*/(0, _jsxRuntime.jsx)(_navigationButton.NavigationButtonAsItem, {
85
+ path: `/typography/font-sizes/${origin}/${size.slug}`,
86
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalHStack, {
87
+ direction: "row",
88
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.FlexItem, {
89
+ className: "edit-site-font-size__item",
90
+ children: size.name
91
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.FlexItem, {
92
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalHStack, {
93
+ justify: "flex-end",
94
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.FlexBlock, {
95
+ className: "edit-site-font-size__item edit-site-font-size__item-value",
96
+ children: size.size
97
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.Icon, {
98
+ icon: (0, _i18n.isRTL)() ? _icons.chevronLeft : _icons.chevronRight
99
+ })]
100
+ })
101
+ })]
102
+ })
103
+ }, size.slug))
104
+ })]
105
+ })]
106
+ });
107
+ }
108
+ function FontSizes() {
109
+ const [themeFontSizes, setThemeFontSizes] = useGlobalSetting('typography.fontSizes.theme');
110
+ const [baseThemeFontSizes] = useGlobalSetting('typography.fontSizes.theme', null, 'base');
111
+ const [defaultFontSizes, setDefaultFontSizes] = useGlobalSetting('typography.fontSizes.default');
112
+ const [baseDefaultFontSizes] = useGlobalSetting('typography.fontSizes.default', null, 'base');
113
+ const [customFontSizes = [], setCustomFontSizes] = useGlobalSetting('typography.fontSizes.custom');
114
+ const [defaultFontSizesEnabled] = useGlobalSetting('typography.defaultFontSizes');
115
+ const handleAddFontSize = () => {
116
+ const index = (0, _utils.getNewIndexFromPresets)(customFontSizes, 'custom-');
117
+ const newFontSize = {
118
+ /* translators: %d: font size index */
119
+ name: (0, _i18n.sprintf)((0, _i18n.__)('New Font Size %d'), index),
120
+ size: '16px',
121
+ slug: `custom-${index}`
122
+ };
123
+ setCustomFontSizes([...customFontSizes, newFontSize]);
124
+ };
125
+ const hasSameSizeValues = (arr1, arr2) => arr1.map(item => item.size).join('') === arr2.map(item => item.size).join('');
126
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalVStack, {
127
+ spacing: 2,
128
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_header.default, {
129
+ title: (0, _i18n.__)('Font size presets'),
130
+ description: (0, _i18n.__)('Create and edit the presets used for font sizes across the site.')
131
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalView, {
132
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalSpacer, {
133
+ paddingX: 4,
134
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalVStack, {
135
+ spacing: 8,
136
+ children: [!!themeFontSizes?.length && /*#__PURE__*/(0, _jsxRuntime.jsx)(FontSizeGroup, {
137
+ label: (0, _i18n.__)('Theme'),
138
+ origin: "theme",
139
+ sizes: themeFontSizes,
140
+ baseSizes: baseThemeFontSizes,
141
+ handleAddFontSize: handleAddFontSize,
142
+ handleResetFontSizes: hasSameSizeValues(themeFontSizes, baseThemeFontSizes) ? null : () => setThemeFontSizes(baseThemeFontSizes)
143
+ }), defaultFontSizesEnabled && !!defaultFontSizes?.length && /*#__PURE__*/(0, _jsxRuntime.jsx)(FontSizeGroup, {
144
+ label: (0, _i18n.__)('Default'),
145
+ origin: "default",
146
+ sizes: defaultFontSizes,
147
+ baseSizes: baseDefaultFontSizes,
148
+ handleAddFontSize: handleAddFontSize,
149
+ handleResetFontSizes: hasSameSizeValues(defaultFontSizes, baseDefaultFontSizes) ? null : () => setDefaultFontSizes(baseDefaultFontSizes)
150
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(FontSizeGroup, {
151
+ label: (0, _i18n.__)('Custom'),
152
+ origin: "custom",
153
+ sizes: customFontSizes,
154
+ handleAddFontSize: handleAddFontSize,
155
+ handleResetFontSizes: customFontSizes.length > 0 ? () => setCustomFontSizes([]) : null
156
+ })]
157
+ })
158
+ })
159
+ })]
160
+ });
161
+ }
162
+ var _default = exports.default = FontSizes;
163
+ //# sourceMappingURL=font-sizes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_blockEditor","require","_i18n","_components","_icons","_element","_lockUnlock","_subtitle","_interopRequireDefault","_navigationButton","_utils","_header","_confirmResetFontSizesDialog","_jsxRuntime","DropdownMenuV2","DropdownMenu","DropdownMenuItemV2","DropdownMenuItem","DropdownMenuItemLabelV2","DropdownMenuItemLabel","unlock","componentsPrivateApis","useGlobalSetting","blockEditorPrivateApis","FontSizeGroup","label","origin","sizes","handleAddFontSize","handleResetFontSizes","isResetDialogOpen","setIsResetDialogOpen","useState","toggleResetDialog","resetDialogText","__","jsxs","Fragment","children","jsx","default","text","confirmButtonText","isOpen","toggleOpen","onConfirm","__experimentalVStack","spacing","__experimentalHStack","justify","align","level","FlexItem","Button","icon","plus","size","onClick","trigger","moreVertical","length","__experimentalItemGroup","isBordered","isSeparated","map","NavigationButtonAsItem","path","slug","direction","className","name","FlexBlock","Icon","isRTL","chevronLeft","chevronRight","FontSizes","themeFontSizes","setThemeFontSizes","baseThemeFontSizes","defaultFontSizes","setDefaultFontSizes","baseDefaultFontSizes","customFontSizes","setCustomFontSizes","defaultFontSizesEnabled","index","getNewIndexFromPresets","newFontSize","sprintf","hasSameSizeValues","arr1","arr2","item","join","title","description","__experimentalView","__experimentalSpacer","paddingX","baseSizes","_default","exports"],"sources":["@wordpress/edit-site/src/components/global-styles/font-sizes/font-sizes.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\nimport { __, sprintf, isRTL } from '@wordpress/i18n';\nimport {\n\tprivateApis as componentsPrivateApis,\n\t__experimentalSpacer as Spacer,\n\t__experimentalView as View,\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalVStack as VStack,\n\t__experimentalHStack as HStack,\n\tFlexItem,\n\tFlexBlock,\n\tButton,\n} from '@wordpress/components';\nimport {\n\tIcon,\n\tplus,\n\tmoreVertical,\n\tchevronLeft,\n\tchevronRight,\n} from '@wordpress/icons';\nimport { useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../../lock-unlock';\nconst {\n\tDropdownMenuV2: DropdownMenu,\n\tDropdownMenuItemV2: DropdownMenuItem,\n\tDropdownMenuItemLabelV2: DropdownMenuItemLabel,\n} = unlock( componentsPrivateApis );\nconst { useGlobalSetting } = unlock( blockEditorPrivateApis );\nimport Subtitle from '../subtitle';\nimport { NavigationButtonAsItem } from '../navigation-button';\nimport { getNewIndexFromPresets } from '../utils';\nimport ScreenHeader from '../header';\nimport ConfirmResetFontSizesDialog from './confirm-reset-font-sizes-dialog';\n\nfunction FontSizeGroup( {\n\tlabel,\n\torigin,\n\tsizes,\n\thandleAddFontSize,\n\thandleResetFontSizes,\n} ) {\n\tconst [ isResetDialogOpen, setIsResetDialogOpen ] = useState( false );\n\n\tconst toggleResetDialog = () => setIsResetDialogOpen( ! isResetDialogOpen );\n\n\tconst resetDialogText =\n\t\torigin === 'custom'\n\t\t\t? __(\n\t\t\t\t\t'Are you sure you want to remove all custom font size presets?'\n\t\t\t )\n\t\t\t: __(\n\t\t\t\t\t'Are you sure you want to reset all font size presets to their default values?'\n\t\t\t );\n\n\treturn (\n\t\t<>\n\t\t\t{ isResetDialogOpen && (\n\t\t\t\t<ConfirmResetFontSizesDialog\n\t\t\t\t\ttext={ resetDialogText }\n\t\t\t\t\tconfirmButtonText={\n\t\t\t\t\t\torigin === 'custom' ? __( 'Remove' ) : __( 'Reset' )\n\t\t\t\t\t}\n\t\t\t\t\tisOpen={ isResetDialogOpen }\n\t\t\t\t\ttoggleOpen={ toggleResetDialog }\n\t\t\t\t\tonConfirm={ handleResetFontSizes }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t<HStack justify=\"space-between\" align=\"center\">\n\t\t\t\t\t<Subtitle level={ 3 }>{ label }</Subtitle>\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t{ origin === 'custom' && (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tlabel={ __( 'Add font size' ) }\n\t\t\t\t\t\t\t\ticon={ plus }\n\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\tonClick={ handleAddFontSize }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ !! handleResetFontSizes && (\n\t\t\t\t\t\t\t<DropdownMenu\n\t\t\t\t\t\t\t\ttrigger={\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\t\t\t\t\tlabel={ __(\n\t\t\t\t\t\t\t\t\t\t\t'Font size presets options'\n\t\t\t\t\t\t\t\t\t\t) }\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\t\t<DropdownMenuItem onClick={ toggleResetDialog }>\n\t\t\t\t\t\t\t\t\t<DropdownMenuItemLabel>\n\t\t\t\t\t\t\t\t\t\t{ origin === 'custom'\n\t\t\t\t\t\t\t\t\t\t\t? __( 'Remove font size presets' )\n\t\t\t\t\t\t\t\t\t\t\t: __( 'Reset font size presets' ) }\n\t\t\t\t\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t\t\t\t</DropdownMenu>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</FlexItem>\n\t\t\t\t</HStack>\n\n\t\t\t\t{ !! sizes.length && (\n\t\t\t\t\t<ItemGroup isBordered isSeparated>\n\t\t\t\t\t\t{ sizes.map( ( size ) => (\n\t\t\t\t\t\t\t<NavigationButtonAsItem\n\t\t\t\t\t\t\t\tkey={ size.slug }\n\t\t\t\t\t\t\t\tpath={ `/typography/font-sizes/${ origin }/${ size.slug }` }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<HStack direction=\"row\">\n\t\t\t\t\t\t\t\t\t<FlexItem className=\"edit-site-font-size__item\">\n\t\t\t\t\t\t\t\t\t\t{ size.name }\n\t\t\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t\t\t\t<HStack justify=\"flex-end\">\n\t\t\t\t\t\t\t\t\t\t\t<FlexBlock className=\"edit-site-font-size__item edit-site-font-size__item-value\">\n\t\t\t\t\t\t\t\t\t\t\t\t{ size.size }\n\t\t\t\t\t\t\t\t\t\t\t</FlexBlock>\n\t\t\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\t\t\tisRTL()\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? chevronLeft\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: chevronRight\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t\t</NavigationButtonAsItem>\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t</ItemGroup>\n\t\t\t\t) }\n\t\t\t</VStack>\n\t\t</>\n\t);\n}\n\nfunction FontSizes() {\n\tconst [ themeFontSizes, setThemeFontSizes ] = useGlobalSetting(\n\t\t'typography.fontSizes.theme'\n\t);\n\n\tconst [ baseThemeFontSizes ] = useGlobalSetting(\n\t\t'typography.fontSizes.theme',\n\t\tnull,\n\t\t'base'\n\t);\n\tconst [ defaultFontSizes, setDefaultFontSizes ] = useGlobalSetting(\n\t\t'typography.fontSizes.default'\n\t);\n\n\tconst [ baseDefaultFontSizes ] = useGlobalSetting(\n\t\t'typography.fontSizes.default',\n\t\tnull,\n\t\t'base'\n\t);\n\n\tconst [ customFontSizes = [], setCustomFontSizes ] = useGlobalSetting(\n\t\t'typography.fontSizes.custom'\n\t);\n\n\tconst [ defaultFontSizesEnabled ] = useGlobalSetting(\n\t\t'typography.defaultFontSizes'\n\t);\n\n\tconst handleAddFontSize = () => {\n\t\tconst index = getNewIndexFromPresets( customFontSizes, 'custom-' );\n\t\tconst newFontSize = {\n\t\t\t/* translators: %d: font size index */\n\t\t\tname: sprintf( __( 'New Font Size %d' ), index ),\n\t\t\tsize: '16px',\n\t\t\tslug: `custom-${ index }`,\n\t\t};\n\n\t\tsetCustomFontSizes( [ ...customFontSizes, newFontSize ] );\n\t};\n\n\tconst hasSameSizeValues = ( arr1, arr2 ) =>\n\t\tarr1.map( ( item ) => item.size ).join( '' ) ===\n\t\tarr2.map( ( item ) => item.size ).join( '' );\n\n\treturn (\n\t\t<VStack spacing={ 2 }>\n\t\t\t<ScreenHeader\n\t\t\t\ttitle={ __( 'Font size presets' ) }\n\t\t\t\tdescription={ __(\n\t\t\t\t\t'Create and edit the presets used for font sizes across the site.'\n\t\t\t\t) }\n\t\t\t/>\n\n\t\t\t<View>\n\t\t\t\t<Spacer paddingX={ 4 }>\n\t\t\t\t\t<VStack spacing={ 8 }>\n\t\t\t\t\t\t{ !! themeFontSizes?.length && (\n\t\t\t\t\t\t\t<FontSizeGroup\n\t\t\t\t\t\t\t\tlabel={ __( 'Theme' ) }\n\t\t\t\t\t\t\t\torigin=\"theme\"\n\t\t\t\t\t\t\t\tsizes={ themeFontSizes }\n\t\t\t\t\t\t\t\tbaseSizes={ baseThemeFontSizes }\n\t\t\t\t\t\t\t\thandleAddFontSize={ handleAddFontSize }\n\t\t\t\t\t\t\t\thandleResetFontSizes={\n\t\t\t\t\t\t\t\t\thasSameSizeValues(\n\t\t\t\t\t\t\t\t\t\tthemeFontSizes,\n\t\t\t\t\t\t\t\t\t\tbaseThemeFontSizes\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t? null\n\t\t\t\t\t\t\t\t\t\t: () =>\n\t\t\t\t\t\t\t\t\t\t\t\tsetThemeFontSizes(\n\t\t\t\t\t\t\t\t\t\t\t\t\tbaseThemeFontSizes\n\t\t\t\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\n\t\t\t\t\t\t{ defaultFontSizesEnabled &&\n\t\t\t\t\t\t\t!! defaultFontSizes?.length && (\n\t\t\t\t\t\t\t\t<FontSizeGroup\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Default' ) }\n\t\t\t\t\t\t\t\t\torigin=\"default\"\n\t\t\t\t\t\t\t\t\tsizes={ defaultFontSizes }\n\t\t\t\t\t\t\t\t\tbaseSizes={ baseDefaultFontSizes }\n\t\t\t\t\t\t\t\t\thandleAddFontSize={ handleAddFontSize }\n\t\t\t\t\t\t\t\t\thandleResetFontSizes={\n\t\t\t\t\t\t\t\t\t\thasSameSizeValues(\n\t\t\t\t\t\t\t\t\t\t\tdefaultFontSizes,\n\t\t\t\t\t\t\t\t\t\t\tbaseDefaultFontSizes\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t? null\n\t\t\t\t\t\t\t\t\t\t\t: () =>\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetDefaultFontSizes(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbaseDefaultFontSizes\n\t\t\t\t\t\t\t\t\t\t\t\t\t)\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\n\t\t\t\t\t\t<FontSizeGroup\n\t\t\t\t\t\t\tlabel={ __( 'Custom' ) }\n\t\t\t\t\t\t\torigin=\"custom\"\n\t\t\t\t\t\t\tsizes={ customFontSizes }\n\t\t\t\t\t\t\thandleAddFontSize={ handleAddFontSize }\n\t\t\t\t\t\t\thandleResetFontSizes={\n\t\t\t\t\t\t\t\tcustomFontSizes.length > 0\n\t\t\t\t\t\t\t\t\t? () => setCustomFontSizes( [] )\n\t\t\t\t\t\t\t\t\t: null\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</VStack>\n\t\t\t\t</Spacer>\n\t\t\t</View>\n\t\t</VStack>\n\t);\n}\n\nexport default FontSizes;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _components = require("@wordpress/components");
8
+ var _i18n = require("@wordpress/i18n");
9
+ var _element = require("@wordpress/element");
10
+ var _jsxRuntime = require("react/jsx-runtime");
11
+ /**
12
+ * WordPress dependencies
13
+ */
14
+
15
+ function RenameFontSizeDialog({
16
+ fontSize,
17
+ toggleOpen,
18
+ handleRename
19
+ }) {
20
+ const [newName, setNewName] = (0, _element.useState)(fontSize.name);
21
+ const handleConfirm = () => {
22
+ // If the new name is not empty, call the handleRename function
23
+ if (newName.trim()) {
24
+ handleRename(newName);
25
+ }
26
+ toggleOpen();
27
+ };
28
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Modal, {
29
+ onRequestClose: toggleOpen,
30
+ focusOnMount: "firstContentElement",
31
+ title: (0, _i18n.__)('Rename'),
32
+ size: "small",
33
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)("form", {
34
+ onSubmit: event => {
35
+ event.preventDefault();
36
+ handleConfirm();
37
+ toggleOpen();
38
+ },
39
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalVStack, {
40
+ spacing: "3",
41
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalInputControl, {
42
+ __next40pxDefaultSize: true,
43
+ autoComplete: "off",
44
+ value: newName,
45
+ onChange: setNewName,
46
+ label: (0, _i18n.__)('Name'),
47
+ placeholder: (0, _i18n.__)('Font size preset name')
48
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalHStack, {
49
+ justify: "right",
50
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
51
+ __next40pxDefaultSize: true,
52
+ variant: "tertiary",
53
+ onClick: toggleOpen,
54
+ children: (0, _i18n.__)('Cancel')
55
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
56
+ __next40pxDefaultSize: true,
57
+ variant: "primary",
58
+ type: "submit",
59
+ children: (0, _i18n.__)('Save')
60
+ })]
61
+ })]
62
+ })
63
+ })
64
+ });
65
+ }
66
+ var _default = exports.default = RenameFontSizeDialog;
67
+ //# sourceMappingURL=rename-font-size-dialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_components","require","_i18n","_element","_jsxRuntime","RenameFontSizeDialog","fontSize","toggleOpen","handleRename","newName","setNewName","useState","name","handleConfirm","trim","jsx","Modal","onRequestClose","focusOnMount","title","__","size","children","onSubmit","event","preventDefault","jsxs","__experimentalVStack","spacing","__experimentalInputControl","__next40pxDefaultSize","autoComplete","value","onChange","label","placeholder","__experimentalHStack","justify","Button","variant","onClick","type","_default","exports","default"],"sources":["@wordpress/edit-site/src/components/global-styles/font-sizes/rename-font-size-dialog.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalInputControl as InputControl,\n\t__experimentalVStack as VStack,\n\t__experimentalHStack as HStack,\n\tButton,\n\tModal,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\n\nfunction RenameFontSizeDialog( { fontSize, toggleOpen, handleRename } ) {\n\tconst [ newName, setNewName ] = useState( fontSize.name );\n\n\tconst handleConfirm = () => {\n\t\t// If the new name is not empty, call the handleRename function\n\t\tif ( newName.trim() ) {\n\t\t\thandleRename( newName );\n\t\t}\n\t\ttoggleOpen();\n\t};\n\n\treturn (\n\t\t<Modal\n\t\t\tonRequestClose={ toggleOpen }\n\t\t\tfocusOnMount=\"firstContentElement\"\n\t\t\ttitle={ __( 'Rename' ) }\n\t\t\tsize=\"small\"\n\t\t>\n\t\t\t<form\n\t\t\t\tonSubmit={ ( event ) => {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\thandleConfirm();\n\t\t\t\t\ttoggleOpen();\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<VStack spacing=\"3\">\n\t\t\t\t\t<InputControl\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\tvalue={ newName }\n\t\t\t\t\t\tonChange={ setNewName }\n\t\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\t\tplaceholder={ __( 'Font size preset name' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\tonClick={ toggleOpen }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Save' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</HStack>\n\t\t\t\t</VStack>\n\t\t\t</form>\n\t\t</Modal>\n\t);\n}\n\nexport default RenameFontSizeDialog;\n"],"mappings":";;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AAOA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAA8C,IAAAG,WAAA,GAAAH,OAAA;AAX9C;AACA;AACA;;AAWA,SAASI,oBAAoBA,CAAE;EAAEC,QAAQ;EAAEC,UAAU;EAAEC;AAAa,CAAC,EAAG;EACvE,MAAM,CAAEC,OAAO,EAAEC,UAAU,CAAE,GAAG,IAAAC,iBAAQ,EAAEL,QAAQ,CAACM,IAAK,CAAC;EAEzD,MAAMC,aAAa,GAAGA,CAAA,KAAM;IAC3B;IACA,IAAKJ,OAAO,CAACK,IAAI,CAAC,CAAC,EAAG;MACrBN,YAAY,CAAEC,OAAQ,CAAC;IACxB;IACAF,UAAU,CAAC,CAAC;EACb,CAAC;EAED,oBACC,IAAAH,WAAA,CAAAW,GAAA,EAACf,WAAA,CAAAgB,KAAK;IACLC,cAAc,EAAGV,UAAY;IAC7BW,YAAY,EAAC,qBAAqB;IAClCC,KAAK,EAAG,IAAAC,QAAE,EAAE,QAAS,CAAG;IACxBC,IAAI,EAAC,OAAO;IAAAC,QAAA,eAEZ,IAAAlB,WAAA,CAAAW,GAAA;MACCQ,QAAQ,EAAKC,KAAK,IAAM;QACvBA,KAAK,CAACC,cAAc,CAAC,CAAC;QACtBZ,aAAa,CAAC,CAAC;QACfN,UAAU,CAAC,CAAC;MACb,CAAG;MAAAe,QAAA,eAEH,IAAAlB,WAAA,CAAAsB,IAAA,EAAC1B,WAAA,CAAA2B,oBAAM;QAACC,OAAO,EAAC,GAAG;QAAAN,QAAA,gBAClB,IAAAlB,WAAA,CAAAW,GAAA,EAACf,WAAA,CAAA6B,0BAAY;UACZC,qBAAqB;UACrBC,YAAY,EAAC,KAAK;UAClBC,KAAK,EAAGvB,OAAS;UACjBwB,QAAQ,EAAGvB,UAAY;UACvBwB,KAAK,EAAG,IAAAd,QAAE,EAAE,MAAO,CAAG;UACtBe,WAAW,EAAG,IAAAf,QAAE,EAAE,uBAAwB;QAAG,CAC7C,CAAC,eACF,IAAAhB,WAAA,CAAAsB,IAAA,EAAC1B,WAAA,CAAAoC,oBAAM;UAACC,OAAO,EAAC,OAAO;UAAAf,QAAA,gBACtB,IAAAlB,WAAA,CAAAW,GAAA,EAACf,WAAA,CAAAsC,MAAM;YACNR,qBAAqB;YACrBS,OAAO,EAAC,UAAU;YAClBC,OAAO,EAAGjC,UAAY;YAAAe,QAAA,EAEpB,IAAAF,QAAE,EAAE,QAAS;UAAC,CACT,CAAC,eACT,IAAAhB,WAAA,CAAAW,GAAA,EAACf,WAAA,CAAAsC,MAAM;YACNR,qBAAqB;YACrBS,OAAO,EAAC,SAAS;YACjBE,IAAI,EAAC,QAAQ;YAAAnB,QAAA,EAEX,IAAAF,QAAE,EAAE,MAAO;UAAC,CACP,CAAC;QAAA,CACF,CAAC;MAAA,CACF;IAAC,CACJ;EAAC,CACD,CAAC;AAEV;AAAC,IAAAsB,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEcvC,oBAAoB","ignoreList":[]}
@@ -78,7 +78,8 @@ const {
78
78
  DimensionsPanel: StylesDimensionsPanel,
79
79
  FiltersPanel: StylesFiltersPanel,
80
80
  ImageSettingsPanel,
81
- AdvancedPanel: StylesAdvancedPanel
81
+ AdvancedPanel: StylesAdvancedPanel,
82
+ useGlobalStyleLinks
82
83
  } = (0, _lockUnlock.unlock)(_blockEditor.privateApis);
83
84
  function ScreenBlock({
84
85
  name,
@@ -99,6 +100,7 @@ function ScreenBlock({
99
100
  const [rawSettings, setSettings] = useGlobalSetting('', name);
100
101
  const settings = useSettingsForBlockElement(rawSettings, name);
101
102
  const blockType = (0, _blocks.getBlockType)(name);
103
+ const _links = useGlobalStyleLinks();
102
104
 
103
105
  // Only allow `blockGap` support if serialization has not been skipped, to be sure global spacing can be applied.
104
106
  if (settings?.spacing?.blockGap && blockType?.supports?.spacing?.blockGap && (blockType?.supports?.spacing?.__experimentalSkipSerialization === true || blockType?.supports?.spacing?.__experimentalSkipSerialization?.some?.(spacingType => spacingType === 'blockGap'))) {
@@ -248,6 +250,13 @@ function ScreenBlock({
248
250
  value: style,
249
251
  onChange: setStyle,
250
252
  settings: settings
253
+ }), hasBackgroundPanel && /*#__PURE__*/(0, _jsxRuntime.jsx)(StylesBackgroundPanel, {
254
+ inheritedValue: inheritedStyle,
255
+ value: style,
256
+ onChange: setStyle,
257
+ settings: settings,
258
+ defaultValues: BACKGROUND_BLOCK_DEFAULT_VALUES,
259
+ themeFileURIs: _links?.['wp:theme-file']
251
260
  }), hasTypographyPanel && /*#__PURE__*/(0, _jsxRuntime.jsx)(StylesTypographyPanel, {
252
261
  inheritedValue: inheritedStyle,
253
262
  value: style,
@@ -274,13 +283,6 @@ function ScreenBlock({
274
283
  onChange: onChangeLightbox,
275
284
  value: userSettings,
276
285
  inheritedValue: settings
277
- }), hasBackgroundPanel && /*#__PURE__*/(0, _jsxRuntime.jsx)(StylesBackgroundPanel, {
278
- inheritedValue: inheritedStyle,
279
- value: style,
280
- onChange: setStyle,
281
- settings: settings,
282
- defaultValues: BACKGROUND_BLOCK_DEFAULT_VALUES,
283
- defaultControls: blockType?.supports?.background?.__experimentalDefaultControls
284
286
  }), canEditCSS && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.PanelBody, {
285
287
  title: (0, _i18n.__)('Advanced'),
286
288
  initialOpen: false,