@wordpress/block-library 9.41.1-next.v.202603102151.0 → 9.42.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 (140) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/cover/edit/cover-placeholder.cjs +7 -0
  3. package/build/cover/edit/cover-placeholder.cjs.map +2 -2
  4. package/build/html/modal.cjs +151 -229
  5. package/build/html/modal.cjs.map +2 -2
  6. package/build/image/edit.cjs +7 -0
  7. package/build/image/edit.cjs.map +2 -2
  8. package/build/media-text/media-container.cjs +6 -0
  9. package/build/media-text/media-container.cjs.map +2 -2
  10. package/build/navigation/edit/index.cjs +5 -4
  11. package/build/navigation/edit/index.cjs.map +2 -2
  12. package/build/navigation-link/shared/use-link-preview.cjs +29 -0
  13. package/build/navigation-link/shared/use-link-preview.cjs.map +2 -2
  14. package/build/nextpage/block.json +0 -1
  15. package/build/playlist-track/block.json +0 -0
  16. package/build/post-date/block.json +1 -3
  17. package/build/post-date/deprecated.cjs +82 -6
  18. package/build/post-date/deprecated.cjs.map +3 -3
  19. package/build/post-date/edit.cjs +49 -62
  20. package/build/post-date/edit.cjs.map +3 -3
  21. package/build/site-logo/edit.cjs +1 -3
  22. package/build/site-logo/edit.cjs.map +2 -2
  23. package/build/site-title/index.cjs +5 -1
  24. package/build/site-title/index.cjs.map +2 -2
  25. package/build/tab/add-tab-toolbar-control.cjs +22 -5
  26. package/build/tab/add-tab-toolbar-control.cjs.map +2 -2
  27. package/build/tab/remove-tab-toolbar-control.cjs +19 -1
  28. package/build/tab/remove-tab-toolbar-control.cjs.map +2 -2
  29. package/build/tabs/edit.cjs +85 -7
  30. package/build/tabs/edit.cjs.map +2 -2
  31. package/build/tabs/index.cjs +12 -2
  32. package/build/tabs/index.cjs.map +2 -2
  33. package/build/tabs-menu/block.json +1 -6
  34. package/build/tabs-menu/edit.cjs +11 -151
  35. package/build/tabs-menu/edit.cjs.map +3 -3
  36. package/build/tabs-menu/save.cjs.map +2 -2
  37. package/build/tabs-menu-item/block.json +14 -11
  38. package/build/tabs-menu-item/controls.cjs +2 -133
  39. package/build/tabs-menu-item/controls.cjs.map +3 -3
  40. package/build/tabs-menu-item/edit.cjs +44 -56
  41. package/build/tabs-menu-item/edit.cjs.map +3 -3
  42. package/build/tabs-menu-item/save.cjs +0 -1
  43. package/build/tabs-menu-item/save.cjs.map +2 -2
  44. package/build/utils/media-control.cjs +72 -29
  45. package/build/utils/media-control.cjs.map +3 -3
  46. package/build-module/cover/edit/cover-placeholder.mjs +7 -0
  47. package/build-module/cover/edit/cover-placeholder.mjs.map +2 -2
  48. package/build-module/html/modal.mjs +151 -229
  49. package/build-module/html/modal.mjs.map +2 -2
  50. package/build-module/image/edit.mjs +7 -0
  51. package/build-module/image/edit.mjs.map +2 -2
  52. package/build-module/media-text/media-container.mjs +7 -1
  53. package/build-module/media-text/media-container.mjs.map +2 -2
  54. package/build-module/navigation/edit/index.mjs +5 -4
  55. package/build-module/navigation/edit/index.mjs.map +2 -2
  56. package/build-module/navigation-link/shared/use-link-preview.mjs +28 -0
  57. package/build-module/navigation-link/shared/use-link-preview.mjs.map +2 -2
  58. package/build-module/nextpage/block.json +0 -1
  59. package/build-module/playlist-track/block.json +0 -0
  60. package/build-module/post-date/block.json +1 -3
  61. package/build-module/post-date/deprecated.mjs +82 -6
  62. package/build-module/post-date/deprecated.mjs.map +2 -2
  63. package/build-module/post-date/edit.mjs +49 -63
  64. package/build-module/post-date/edit.mjs.map +2 -2
  65. package/build-module/site-logo/edit.mjs +1 -3
  66. package/build-module/site-logo/edit.mjs.map +2 -2
  67. package/build-module/site-title/index.mjs +5 -1
  68. package/build-module/site-title/index.mjs.map +2 -2
  69. package/build-module/tab/add-tab-toolbar-control.mjs +22 -5
  70. package/build-module/tab/add-tab-toolbar-control.mjs.map +2 -2
  71. package/build-module/tab/remove-tab-toolbar-control.mjs +19 -1
  72. package/build-module/tab/remove-tab-toolbar-control.mjs.map +2 -2
  73. package/build-module/tabs/edit.mjs +87 -9
  74. package/build-module/tabs/edit.mjs.map +2 -2
  75. package/build-module/tabs/index.mjs +12 -2
  76. package/build-module/tabs/index.mjs.map +2 -2
  77. package/build-module/tabs-menu/block.json +1 -6
  78. package/build-module/tabs-menu/edit.mjs +13 -162
  79. package/build-module/tabs-menu/edit.mjs.map +2 -2
  80. package/build-module/tabs-menu/save.mjs.map +2 -2
  81. package/build-module/tabs-menu-item/block.json +14 -11
  82. package/build-module/tabs-menu-item/controls.mjs +4 -143
  83. package/build-module/tabs-menu-item/controls.mjs.map +2 -2
  84. package/build-module/tabs-menu-item/edit.mjs +45 -57
  85. package/build-module/tabs-menu-item/edit.mjs.map +3 -3
  86. package/build-module/tabs-menu-item/save.mjs +0 -1
  87. package/build-module/tabs-menu-item/save.mjs.map +2 -2
  88. package/build-module/utils/media-control.mjs +73 -30
  89. package/build-module/utils/media-control.mjs.map +2 -2
  90. package/build-style/editor-rtl.css +45 -11
  91. package/build-style/editor.css +45 -11
  92. package/build-style/navigation/style-rtl.css +4 -0
  93. package/build-style/navigation/style.css +4 -0
  94. package/build-style/navigation-overlay-close/style-rtl.css +3 -3
  95. package/build-style/navigation-overlay-close/style.css +3 -3
  96. package/build-style/style-rtl.css +7 -3
  97. package/build-style/style.css +7 -3
  98. package/build-style/tabs-menu/editor-rtl.css +5 -3
  99. package/build-style/tabs-menu/editor.css +5 -3
  100. package/package.json +38 -38
  101. package/src/cover/edit/cover-placeholder.js +8 -0
  102. package/src/html/modal.js +6 -77
  103. package/src/image/edit.js +8 -0
  104. package/src/media-text/media-container.js +8 -1
  105. package/src/navigation/edit/index.js +6 -4
  106. package/src/navigation/index.php +24 -17
  107. package/src/navigation/style.scss +10 -0
  108. package/src/navigation-link/index.php +9 -9
  109. package/src/navigation-link/shared/test/use-link-preview.test.js +149 -0
  110. package/src/navigation-link/shared/use-link-preview.js +43 -1
  111. package/src/navigation-overlay-close/style.scss +3 -3
  112. package/src/navigation-submenu/index.php +17 -11
  113. package/src/nextpage/block.json +0 -1
  114. package/src/playlist-track/block.json +0 -0
  115. package/src/playlist-track/edit.js +0 -0
  116. package/src/playlist-track/index.js +0 -0
  117. package/src/playlist-track/index.php +0 -0
  118. package/src/playlist-track/init.js +0 -0
  119. package/src/playlist-track/style.scss +0 -0
  120. package/src/post-date/block.json +1 -3
  121. package/src/post-date/deprecated.js +86 -6
  122. package/src/post-date/edit.js +65 -82
  123. package/src/site-logo/edit.js +1 -3
  124. package/src/site-title/index.js +5 -1
  125. package/src/tab/add-tab-toolbar-control.js +48 -23
  126. package/src/tab/remove-tab-toolbar-control.js +30 -10
  127. package/src/tabs/edit.js +133 -10
  128. package/src/tabs/index.js +12 -2
  129. package/src/tabs-menu/block.json +1 -6
  130. package/src/tabs-menu/edit.js +13 -214
  131. package/src/tabs-menu/editor.scss +7 -3
  132. package/src/tabs-menu/index.php +42 -27
  133. package/src/tabs-menu/save.js +0 -4
  134. package/src/tabs-menu-item/block.json +14 -11
  135. package/src/tabs-menu-item/controls.js +4 -167
  136. package/src/tabs-menu-item/edit.js +60 -69
  137. package/src/tabs-menu-item/index.php +11 -23
  138. package/src/tabs-menu-item/save.js +0 -1
  139. package/src/utils/media-control.js +61 -21
  140. package/src/utils/media-control.scss +54 -18
@@ -34,171 +34,31 @@ __export(edit_exports, {
34
34
  });
35
35
  module.exports = __toCommonJS(edit_exports);
36
36
  var import_clsx = __toESM(require("clsx"));
37
- var import_i18n = require("@wordpress/i18n");
38
37
  var import_block_editor = require("@wordpress/block-editor");
39
38
  var import_data = require("@wordpress/data");
40
- var import_element = require("@wordpress/element");
41
39
  var import_add_tab_toolbar_control = __toESM(require("../tab/add-tab-toolbar-control.cjs"));
42
40
  var import_remove_tab_toolbar_control = __toESM(require("../tab/remove-tab-toolbar-control.cjs"));
43
41
  var import_jsx_runtime = require("react/jsx-runtime");
44
- var TABS_MENU_ITEM_TEMPLATE = [["core/tabs-menu-item", {}]];
45
- var EMPTY_ARRAY = [];
46
- function TabsMenuItemPreview({
47
- blocks,
48
- blockContextId,
49
- isHidden,
50
- setActiveBlockContextId
51
- }) {
52
- const blockPreviewProps = (0, import_block_editor.__experimentalUseBlockPreview)({ blocks });
53
- const handleOnClick = () => {
54
- setActiveBlockContextId(blockContextId);
55
- };
56
- const style = {
57
- display: isHidden ? "none" : "flex"
58
- };
59
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
60
- "div",
61
- {
62
- ...blockPreviewProps,
63
- tabIndex: 0,
64
- role: "button",
65
- onClick: handleOnClick,
66
- onKeyDown: handleOnClick,
67
- style
68
- }
69
- );
70
- }
71
- var MemoizedTabsMenuItemPreview = (0, import_element.memo)(TabsMenuItemPreview);
72
- function TabsMenuItemTemplateBlocks({ wrapperProps = {}, layout }) {
73
- const innerBlocksProps = (0, import_block_editor.useInnerBlocksProps)(wrapperProps, {
74
- template: TABS_MENU_ITEM_TEMPLATE,
75
- templateLock: "all",
76
- renderAppender: false,
77
- layout
78
- });
79
- return innerBlocksProps.children;
80
- }
81
- function Edit({
82
- context,
83
- clientId,
84
- __unstableLayoutClassNames: layoutClassNames
85
- }) {
86
- const { layout } = (0, import_block_editor.useBlockEditContext)();
87
- const tabsId = context["core/tabs-id"] || null;
88
- const tabsList = context["core/tabs-list"] || EMPTY_ARRAY;
89
- const activeTabIndex = context["core/tabs-activeTabIndex"] ?? 0;
90
- const editorActiveTabIndex = context["core/tabs-editorActiveTabIndex"];
91
- const effectiveActiveIndex = (0, import_element.useMemo)(() => {
92
- return editorActiveTabIndex ?? activeTabIndex;
93
- }, [editorActiveTabIndex, activeTabIndex]);
94
- const { __unstableMarkNextChangeAsNotPersistent } = (0, import_data.useDispatch)(import_block_editor.store);
95
- const { updateBlockAttributes } = (0, import_data.useDispatch)(import_block_editor.store);
96
- const [activeBlockContextId, setActiveBlockContextId] = (0, import_element.useState)(null);
97
- const { blocks, tabsClientId } = (0, import_data.useSelect)(
98
- (select) => {
99
- const { getBlocks, getBlockRootClientId } = select(import_block_editor.store);
100
- return {
101
- blocks: getBlocks(clientId),
102
- tabsClientId: getBlockRootClientId(clientId)
103
- };
104
- },
42
+ function Edit({ clientId, __unstableLayoutClassNames: layoutClassNames }) {
43
+ const { tabsClientId } = (0, import_data.useSelect)(
44
+ (select) => ({
45
+ tabsClientId: select(import_block_editor.store).getBlockRootClientId(clientId)
46
+ }),
105
47
  [clientId]
106
48
  );
107
- const blockContexts = (0, import_element.useMemo)(() => {
108
- return tabsList.map((tab, index) => ({
109
- "core/tabs-menu-item-index": index,
110
- "core/tabs-menu-item-id": tab.id || `tab-${index}`,
111
- "core/tabs-menu-item-label": tab.label || "",
112
- "core/tabs-menu-item-clientId": tab.clientId,
113
- // Pass through parent context
114
- "core/tabs-id": tabsId,
115
- "core/tabs-list": tabsList,
116
- "core/tabs-activeTabIndex": activeTabIndex,
117
- "core/tabs-editorActiveTabIndex": editorActiveTabIndex
118
- }));
119
- }, [tabsList, tabsId, activeTabIndex, editorActiveTabIndex]);
120
- const getContextId = (0, import_element.useCallback)((blockContext) => {
121
- return `tab-context-${blockContext["core/tabs-menu-item-index"]}`;
122
- }, []);
123
- (0, import_element.useEffect)(() => {
124
- if (blockContexts.length > 0 && activeBlockContextId === null) {
125
- setActiveBlockContextId(getContextId(blockContexts[0]));
126
- }
127
- }, [blockContexts, activeBlockContextId, getContextId]);
128
- (0, import_element.useEffect)(() => {
129
- if (blockContexts.length > 0 && effectiveActiveIndex < blockContexts.length) {
130
- const newContextId = getContextId(
131
- blockContexts[effectiveActiveIndex]
132
- );
133
- setActiveBlockContextId(
134
- (prevId) => prevId !== newContextId ? newContextId : prevId
135
- );
136
- }
137
- }, [effectiveActiveIndex, blockContexts, getContextId]);
138
- const handleTabContextClick = (0, import_element.useCallback)(
139
- (index) => {
140
- if (tabsClientId && index !== effectiveActiveIndex) {
141
- __unstableMarkNextChangeAsNotPersistent();
142
- updateBlockAttributes(tabsClientId, {
143
- editorActiveTabIndex: index
144
- });
145
- }
146
- },
147
- [
148
- tabsClientId,
149
- effectiveActiveIndex,
150
- updateBlockAttributes,
151
- __unstableMarkNextChangeAsNotPersistent
152
- ]
153
- );
154
49
  const blockProps = (0, import_block_editor.useBlockProps)({
155
50
  className: (0, import_clsx.default)(layoutClassNames),
156
51
  role: "tablist"
157
52
  });
158
- if (tabsList.length === 0) {
159
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
160
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_add_tab_toolbar_control.default, { tabsClientId }),
161
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_remove_tab_toolbar_control.default, { tabsClientId }),
162
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { ...blockProps, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "tabs__tab-label tabs__tab-label--placeholder", children: (0, import_i18n.__)("Add tabs to display menu") }) })
163
- ] });
164
- }
53
+ const innerBlocksProps = (0, import_block_editor.useInnerBlocksProps)(blockProps, {
54
+ allowedBlocks: ["core/tabs-menu-item"],
55
+ orientation: "horizontal",
56
+ renderAppender: false
57
+ });
165
58
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
166
59
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_add_tab_toolbar_control.default, { tabsClientId }),
167
60
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_remove_tab_toolbar_control.default, { tabsClientId }),
168
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { ...blockProps, children: blockContexts.map((blockContext, index) => {
169
- const contextId = getContextId(blockContext);
170
- const isVisible = contextId === activeBlockContextId;
171
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
172
- import_block_editor.BlockContextProvider,
173
- {
174
- value: blockContext,
175
- children: [
176
- isVisible ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
177
- TabsMenuItemTemplateBlocks,
178
- {
179
- wrapperProps: {
180
- onClick: () => handleTabContextClick(index)
181
- },
182
- layout
183
- }
184
- ) : null,
185
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
186
- MemoizedTabsMenuItemPreview,
187
- {
188
- blocks,
189
- blockContextId: contextId,
190
- setActiveBlockContextId: (id) => {
191
- setActiveBlockContextId(id);
192
- handleTabContextClick(index);
193
- },
194
- isHidden: isVisible
195
- }
196
- )
197
- ]
198
- },
199
- contextId
200
- );
201
- }) })
61
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { ...innerBlocksProps })
202
62
  ] });
203
63
  }
204
64
  var edit_default = Edit;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/tabs-menu/edit.js"],
4
- "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tBlockContextProvider,\n\t__experimentalUseBlockPreview as useBlockPreview,\n\tstore as blockEditorStore,\n\tuseBlockEditContext,\n} from '@wordpress/block-editor';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tmemo,\n\tuseMemo,\n\tuseState,\n\tuseEffect,\n\tuseCallback,\n} from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport AddTabToolbarControl from '../tab/add-tab-toolbar-control';\nimport RemoveTabToolbarControl from '../tab/remove-tab-toolbar-control';\n\nconst TABS_MENU_ITEM_TEMPLATE = [ [ 'core/tabs-menu-item', {} ] ];\nconst EMPTY_ARRAY = [];\n\n/**\n * Preview component for non-active tab menu items.\n * Uses useBlockPreview to cache the rendering.\n *\n * @param {Object} props Component props.\n * @param {Array} props.blocks The blocks to preview.\n * @param {string} props.blockContextId The context ID for this block.\n * @param {boolean} props.isHidden Whether the preview is hidden.\n * @param {Function} props.setActiveBlockContextId Callback to set the active context ID.\n */\nfunction TabsMenuItemPreview( {\n\tblocks,\n\tblockContextId,\n\tisHidden,\n\tsetActiveBlockContextId,\n} ) {\n\tconst blockPreviewProps = useBlockPreview( { blocks } );\n\n\tconst handleOnClick = () => {\n\t\tsetActiveBlockContextId( blockContextId );\n\t};\n\n\tconst style = {\n\t\tdisplay: isHidden ? 'none' : 'flex',\n\t};\n\n\treturn (\n\t\t<div\n\t\t\t{ ...blockPreviewProps }\n\t\t\ttabIndex={ 0 }\n\t\t\trole=\"button\"\n\t\t\tonClick={ handleOnClick }\n\t\t\tonKeyDown={ handleOnClick }\n\t\t\tstyle={ style }\n\t\t/>\n\t);\n}\n\nconst MemoizedTabsMenuItemPreview = memo( TabsMenuItemPreview );\n\n/**\n * The actual editable inner blocks for the active tab item.\n *\n * @param {Object} props Component props.\n * @param {Object} props.wrapperProps Props to pass to the wrapper element.\n * @param {Object} props.layout The layout object to pass to inner blocks.\n */\nfunction TabsMenuItemTemplateBlocks( { wrapperProps = {}, layout } ) {\n\tconst innerBlocksProps = useInnerBlocksProps( wrapperProps, {\n\t\ttemplate: TABS_MENU_ITEM_TEMPLATE,\n\t\ttemplateLock: 'all',\n\t\trenderAppender: false,\n\t\tlayout,\n\t} );\n\treturn innerBlocksProps.children;\n}\n\nfunction Edit( {\n\tcontext,\n\tclientId,\n\t__unstableLayoutClassNames: layoutClassNames,\n} ) {\n\t// Get the layout from block edit context to pass to inner blocks.\n\t// This ensures the correct orientation is used from the start.\n\tconst { layout } = useBlockEditContext();\n\n\tconst tabsId = context[ 'core/tabs-id' ] || null;\n\tconst tabsList = context[ 'core/tabs-list' ] || EMPTY_ARRAY;\n\tconst activeTabIndex = context[ 'core/tabs-activeTabIndex' ] ?? 0;\n\tconst editorActiveTabIndex = context[ 'core/tabs-editorActiveTabIndex' ];\n\n\t// Memoize effectiveActiveIndex to ensure it updates when context changes\n\tconst effectiveActiveIndex = useMemo( () => {\n\t\treturn editorActiveTabIndex ?? activeTabIndex;\n\t}, [ editorActiveTabIndex, activeTabIndex ] );\n\n\tconst { __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\n\t// Track which tab context is \"active\" for editing (shows real inner blocks)\n\tconst [ activeBlockContextId, setActiveBlockContextId ] = useState( null );\n\n\t// Get the inner blocks (the single tabs-menu-item template)\n\tconst { blocks, tabsClientId } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlocks, getBlockRootClientId } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\treturn {\n\t\t\t\tblocks: getBlocks( clientId ),\n\t\t\t\ttabsClientId: getBlockRootClientId( clientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\t// Build block contexts for each tab\n\tconst blockContexts = useMemo( () => {\n\t\treturn tabsList.map( ( tab, index ) => ( {\n\t\t\t'core/tabs-menu-item-index': index,\n\t\t\t'core/tabs-menu-item-id': tab.id || `tab-${ index }`,\n\t\t\t'core/tabs-menu-item-label': tab.label || '',\n\t\t\t'core/tabs-menu-item-clientId': tab.clientId,\n\t\t\t// Pass through parent context\n\t\t\t'core/tabs-id': tabsId,\n\t\t\t'core/tabs-list': tabsList,\n\t\t\t'core/tabs-activeTabIndex': activeTabIndex,\n\t\t\t'core/tabs-editorActiveTabIndex': editorActiveTabIndex,\n\t\t} ) );\n\t}, [ tabsList, tabsId, activeTabIndex, editorActiveTabIndex ] );\n\n\t// Generate a unique ID for each block context\n\tconst getContextId = useCallback( ( blockContext ) => {\n\t\treturn `tab-context-${ blockContext[ 'core/tabs-menu-item-index' ] }`;\n\t}, [] );\n\n\t// Set the first tab as active by default\n\tuseEffect( () => {\n\t\tif ( blockContexts.length > 0 && activeBlockContextId === null ) {\n\t\t\tsetActiveBlockContextId( getContextId( blockContexts[ 0 ] ) );\n\t\t}\n\t}, [ blockContexts, activeBlockContextId, getContextId ] );\n\n\t// Update active context when editorActiveTabIndex changes\n\tuseEffect( () => {\n\t\tif (\n\t\t\tblockContexts.length > 0 &&\n\t\t\teffectiveActiveIndex < blockContexts.length\n\t\t) {\n\t\t\tconst newContextId = getContextId(\n\t\t\t\tblockContexts[ effectiveActiveIndex ]\n\t\t\t);\n\t\t\tsetActiveBlockContextId( ( prevId ) =>\n\t\t\t\tprevId !== newContextId ? newContextId : prevId\n\t\t\t);\n\t\t}\n\t}, [ effectiveActiveIndex, blockContexts, getContextId ] );\n\n\t// Handle tab click to update parent tabs block's editorActiveTabIndex\n\tconst handleTabContextClick = useCallback(\n\t\t( index ) => {\n\t\t\tif ( tabsClientId && index !== effectiveActiveIndex ) {\n\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\tupdateBlockAttributes( tabsClientId, {\n\t\t\t\t\teditorActiveTabIndex: index,\n\t\t\t\t} );\n\t\t\t}\n\t\t},\n\t\t[\n\t\t\ttabsClientId,\n\t\t\teffectiveActiveIndex,\n\t\t\tupdateBlockAttributes,\n\t\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\t]\n\t);\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( layoutClassNames ),\n\t\trole: 'tablist',\n\t} );\n\n\t// If no tabs exist yet, show placeholder\n\tif ( tabsList.length === 0 ) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<AddTabToolbarControl tabsClientId={ tabsClientId } />\n\t\t\t\t<RemoveTabToolbarControl tabsClientId={ tabsClientId } />\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t<span className=\"tabs__tab-label tabs__tab-label--placeholder\">\n\t\t\t\t\t\t{ __( 'Add tabs to display menu' ) }\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\t\t\t</>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<AddTabToolbarControl tabsClientId={ tabsClientId } />\n\t\t\t<RemoveTabToolbarControl tabsClientId={ tabsClientId } />\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ blockContexts.map( ( blockContext, index ) => {\n\t\t\t\t\tconst contextId = getContextId( blockContext );\n\t\t\t\t\tconst isVisible = contextId === activeBlockContextId;\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<BlockContextProvider\n\t\t\t\t\t\t\tkey={ contextId }\n\t\t\t\t\t\t\tvalue={ blockContext }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ isVisible ? (\n\t\t\t\t\t\t\t\t<TabsMenuItemTemplateBlocks\n\t\t\t\t\t\t\t\t\twrapperProps={ {\n\t\t\t\t\t\t\t\t\t\tonClick: () =>\n\t\t\t\t\t\t\t\t\t\t\thandleTabContextClick( index ),\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tlayout={ layout }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) : null }\n\t\t\t\t\t\t\t<MemoizedTabsMenuItemPreview\n\t\t\t\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\t\t\t\tblockContextId={ contextId }\n\t\t\t\t\t\t\t\tsetActiveBlockContextId={ ( id ) => {\n\t\t\t\t\t\t\t\t\tsetActiveBlockContextId( id );\n\t\t\t\t\t\t\t\t\thandleTabContextClick( index );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tisHidden={ isVisible }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</BlockContextProvider>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default Edit;\n"],
5
- "mappings": "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",
6
- "names": ["useBlockPreview", "blockEditorStore", "clsx", "AddTabToolbarControl", "RemoveTabToolbarControl"]
4
+ "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport AddTabToolbarControl from '../tab/add-tab-toolbar-control';\nimport RemoveTabToolbarControl from '../tab/remove-tab-toolbar-control';\n\nfunction Edit( { clientId, __unstableLayoutClassNames: layoutClassNames } ) {\n\tconst { tabsClientId } = useSelect(\n\t\t( select ) => ( {\n\t\t\ttabsClientId:\n\t\t\t\tselect( blockEditorStore ).getBlockRootClientId( clientId ),\n\t\t} ),\n\t\t[ clientId ]\n\t);\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( layoutClassNames ),\n\t\trole: 'tablist',\n\t} );\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\tallowedBlocks: [ 'core/tabs-menu-item' ],\n\t\torientation: 'horizontal',\n\t\trenderAppender: false,\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<AddTabToolbarControl tabsClientId={ tabsClientId } />\n\t\t\t<RemoveTabToolbarControl tabsClientId={ tabsClientId } />\n\t\t\t<div { ...innerBlocksProps } />\n\t\t</>\n\t);\n}\n\nexport default Edit;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAAiB;AAKjB,0BAIO;AACP,kBAA0B;AAK1B,qCAAiC;AACjC,wCAAoC;AAuBlC;AArBF,SAAS,KAAM,EAAE,UAAU,4BAA4B,iBAAiB,GAAI;AAC3E,QAAM,EAAE,aAAa,QAAI;AAAA,IACxB,CAAE,YAAc;AAAA,MACf,cACC,OAAQ,oBAAAA,KAAiB,EAAE,qBAAsB,QAAS;AAAA,IAC5D;AAAA,IACA,CAAE,QAAS;AAAA,EACZ;AAEA,QAAM,iBAAa,mCAAe;AAAA,IACjC,eAAW,YAAAC,SAAM,gBAAiB;AAAA,IAClC,MAAM;AAAA,EACP,CAAE;AAEF,QAAM,uBAAmB,yCAAqB,YAAY;AAAA,IACzD,eAAe,CAAE,qBAAsB;AAAA,IACvC,aAAa;AAAA,IACb,gBAAgB;AAAA,EACjB,CAAE;AAEF,SACC,4EACC;AAAA,gDAAC,+BAAAC,SAAA,EAAqB,cAA8B;AAAA,IACpD,4CAAC,kCAAAC,SAAA,EAAwB,cAA8B;AAAA,IACvD,4CAAC,SAAM,GAAG,kBAAmB;AAAA,KAC9B;AAEF;AAEA,IAAO,eAAQ;",
6
+ "names": ["blockEditorStore", "clsx", "AddTabToolbarControl", "RemoveTabToolbarControl"]
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/tabs-menu/save.js"],
4
- "sourcesContent": ["/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\nimport { useBlockProps, useInnerBlocksProps } from '@wordpress/block-editor';\n\nexport default function save() {\n\tconst blockProps = useBlockProps.save( {\n\t\trole: 'tablist',\n\t} );\n\n\tconst innerBlocksProps = useInnerBlocksProps.save( blockProps );\n\n\treturn <div { ...innerBlocksProps } />;\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,0BAAmD;AAS3C;AAPO,SAAR,OAAwB;AAC9B,QAAM,aAAa,kCAAc,KAAM;AAAA,IACtC,MAAM;AAAA,EACP,CAAE;AAEF,QAAM,mBAAmB,wCAAoB,KAAM,UAAW;AAE9D,SAAO,4CAAC,SAAM,GAAG,kBAAmB;AACrC;",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useBlockProps, useInnerBlocksProps } from '@wordpress/block-editor';\n\nexport default function save() {\n\tconst blockProps = useBlockProps.save( {\n\t\trole: 'tablist',\n\t} );\n\n\tconst innerBlocksProps = useInnerBlocksProps.save( blockProps );\n\n\treturn <div { ...innerBlocksProps } />;\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,0BAAmD;AAS3C;AAPO,SAAR,OAAwB;AAC9B,QAAM,aAAa,kCAAc,KAAM;AAAA,IACtC,MAAM;AAAA,EACP,CAAE;AAEF,QAAM,mBAAmB,wCAAoB,KAAM,UAAW;AAE9D,SAAO,4CAAC,SAAM,GAAG,kBAAmB;AACrC;",
6
6
  "names": []
7
7
  }
@@ -4,21 +4,25 @@
4
4
  "apiVersion": 3,
5
5
  "name": "core/tabs-menu-item",
6
6
  "title": "Tab Menu Item",
7
- "description": "A single tab button in the tabs menu. Used as a template for styling all tab buttons.",
7
+ "description": "A single tab button in the tabs menu.",
8
8
  "version": "1.0.0",
9
9
  "category": "design",
10
10
  "textdomain": "default",
11
11
  "parent": [ "core/tabs-menu" ],
12
12
  "usesContext": [
13
- "core/tabs-menu-item-index",
14
- "core/tabs-menu-item-id",
15
- "core/tabs-menu-item-label",
16
- "core/tabs-menu-item-clientId",
17
13
  "core/tabs-list",
18
14
  "core/tabs-activeTabIndex",
19
- "core/tabs-editorActiveTabIndex"
15
+ "core/tabs-editorActiveTabIndex",
16
+ "core/tabs-menu-item-index",
17
+ "core/tabs-menu-item-id",
18
+ "core/tabs-menu-item-label"
20
19
  ],
21
- "attributes": {},
20
+ "attributes": {
21
+ "anchor": {
22
+ "type": "string",
23
+ "default": ""
24
+ }
25
+ },
22
26
  "supports": {
23
27
  "html": false,
24
28
  "reusable": false,
@@ -31,7 +35,6 @@
31
35
  "text": true
32
36
  }
33
37
  },
34
- "shadow": true,
35
38
  "typography": {
36
39
  "fontSize": true,
37
40
  "__experimentalFontFamily": true,
@@ -40,9 +43,6 @@
40
43
  "fontSize": true
41
44
  }
42
45
  },
43
- "layout": {
44
- "allowEditing": false
45
- },
46
46
  "spacing": {
47
47
  "padding": true,
48
48
  "__experimentalDefaultControls": {
@@ -54,6 +54,9 @@
54
54
  "color": true,
55
55
  "width": true,
56
56
  "style": true
57
+ },
58
+ "layout": {
59
+ "allowEditing": false
57
60
  }
58
61
  },
59
62
  "editorScript": "file:./index.js",
@@ -33,143 +33,12 @@ __export(controls_exports, {
33
33
  default: () => Controls
34
34
  });
35
35
  module.exports = __toCommonJS(controls_exports);
36
- var import_clsx = __toESM(require("clsx"));
37
- var import_i18n = require("@wordpress/i18n");
38
36
  var import_block_editor = require("@wordpress/block-editor");
39
- var import_components = require("@wordpress/components");
40
- var import_icons = require("@wordpress/icons");
41
- var import_data = require("@wordpress/data");
42
37
  var import_add_tab_toolbar_control = __toESM(require("../tab/add-tab-toolbar-control.cjs"));
43
38
  var import_remove_tab_toolbar_control = __toESM(require("../tab/remove-tab-toolbar-control.cjs"));
44
39
  var import_jsx_runtime = require("react/jsx-runtime");
45
- function TabBlockMover({
46
- tabClientId,
47
- tabIndex,
48
- tabsCount,
49
- tabsMenuClientId,
50
- tabsClientId
51
- }) {
52
- const {
53
- moveBlocksUp,
54
- moveBlocksDown,
55
- updateBlockAttributes,
56
- __unstableMarkNextChangeAsNotPersistent
57
- } = (0, import_data.useDispatch)(import_block_editor.store);
58
- const { tabPanelClientId, orientation } = (0, import_data.useSelect)(
59
- (select) => {
60
- const { getBlockRootClientId, getBlockAttributes } = select(import_block_editor.store);
61
- const tabsMenuAttributes = tabsMenuClientId ? getBlockAttributes(tabsMenuClientId) : null;
62
- return {
63
- tabPanelClientId: getBlockRootClientId(tabClientId),
64
- orientation: tabsMenuAttributes?.layout?.orientation || "horizontal"
65
- };
66
- },
67
- [tabClientId, tabsMenuClientId]
68
- );
69
- const isFirst = tabIndex === 0;
70
- const isLast = tabIndex === tabsCount - 1;
71
- const isHorizontal = orientation === "horizontal";
72
- let upIcon, downIcon, upLabel, downLabel;
73
- if (isHorizontal) {
74
- if ((0, import_i18n.isRTL)()) {
75
- upIcon = import_icons.chevronRight;
76
- downIcon = import_icons.chevronLeft;
77
- upLabel = (0, import_i18n.__)("Move tab right");
78
- downLabel = (0, import_i18n.__)("Move tab left");
79
- } else {
80
- upIcon = import_icons.chevronLeft;
81
- downIcon = import_icons.chevronRight;
82
- upLabel = (0, import_i18n.__)("Move tab left");
83
- downLabel = (0, import_i18n.__)("Move tab right");
84
- }
85
- } else {
86
- upIcon = import_icons.chevronUp;
87
- downIcon = import_icons.chevronDown;
88
- upLabel = (0, import_i18n.__)("Move tab up");
89
- downLabel = (0, import_i18n.__)("Move tab down");
90
- }
91
- const handleMoveUp = () => {
92
- moveBlocksUp([tabClientId], tabPanelClientId);
93
- if (tabsClientId) {
94
- __unstableMarkNextChangeAsNotPersistent();
95
- updateBlockAttributes(tabsClientId, {
96
- editorActiveTabIndex: tabIndex - 1
97
- });
98
- }
99
- };
100
- const handleMoveDown = () => {
101
- moveBlocksDown([tabClientId], tabPanelClientId);
102
- if (tabsClientId) {
103
- __unstableMarkNextChangeAsNotPersistent();
104
- updateBlockAttributes(tabsClientId, {
105
- editorActiveTabIndex: tabIndex + 1
106
- });
107
- }
108
- };
109
- if (tabsCount <= 1) {
110
- return null;
111
- }
112
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_block_editor.BlockControls, { group: "parent", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
113
- import_components.ToolbarGroup,
114
- {
115
- className: (0, import_clsx.default)("block-editor-block-mover", {
116
- "is-horizontal": isHorizontal
117
- }),
118
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "block-editor-block-mover__move-button-container", children: [
119
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.ToolbarItem, { children: (itemProps) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
120
- import_components.Button,
121
- {
122
- className: (0, import_clsx.default)(
123
- "block-editor-block-mover-button",
124
- "is-up-button"
125
- ),
126
- icon: upIcon,
127
- label: upLabel,
128
- disabled: isFirst,
129
- accessibleWhenDisabled: true,
130
- onClick: handleMoveUp,
131
- __next40pxDefaultSize: true,
132
- ...itemProps
133
- }
134
- ) }),
135
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.ToolbarItem, { children: (itemProps) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
136
- import_components.Button,
137
- {
138
- className: (0, import_clsx.default)(
139
- "block-editor-block-mover-button",
140
- "is-down-button"
141
- ),
142
- icon: downIcon,
143
- label: downLabel,
144
- disabled: isLast,
145
- accessibleWhenDisabled: true,
146
- onClick: handleMoveDown,
147
- __next40pxDefaultSize: true,
148
- ...itemProps
149
- }
150
- ) })
151
- ] })
152
- }
153
- ) });
154
- }
155
- function Controls({
156
- tabsClientId,
157
- tabClientId,
158
- tabIndex,
159
- tabsCount,
160
- tabsMenuClientId
161
- }) {
162
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
163
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
164
- TabBlockMover,
165
- {
166
- tabClientId,
167
- tabIndex,
168
- tabsCount,
169
- tabsMenuClientId,
170
- tabsClientId
171
- }
172
- ),
40
+ function Controls({ tabsClientId }) {
41
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_block_editor.BlockControls, { children: [
173
42
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_add_tab_toolbar_control.default, { tabsClientId }),
174
43
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_remove_tab_toolbar_control.default, { tabsClientId })
175
44
  ] });
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/tabs-menu-item/controls.js"],
4
- "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __, isRTL } from '@wordpress/i18n';\nimport {\n\tBlockControls,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { ToolbarGroup, ToolbarItem, Button } from '@wordpress/components';\nimport {\n\tchevronLeft,\n\tchevronRight,\n\tchevronUp,\n\tchevronDown,\n} from '@wordpress/icons';\nimport { useDispatch, useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport AddTabToolbarControl from '../tab/add-tab-toolbar-control';\nimport RemoveTabToolbarControl from '../tab/remove-tab-toolbar-control';\n\nfunction TabBlockMover( {\n\ttabClientId,\n\ttabIndex,\n\ttabsCount,\n\ttabsMenuClientId,\n\ttabsClientId,\n} ) {\n\tconst {\n\t\tmoveBlocksUp,\n\t\tmoveBlocksDown,\n\t\tupdateBlockAttributes,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t} = useDispatch( blockEditorStore );\n\n\tconst { tabPanelClientId, orientation } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockRootClientId, getBlockAttributes } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\t// Get orientation directly from the tabs-menu block's layout attribute.\n\t\t\t// This is more reliable than getBlockListSettings which is set asynchronously.\n\t\t\tconst tabsMenuAttributes = tabsMenuClientId\n\t\t\t\t? getBlockAttributes( tabsMenuClientId )\n\t\t\t\t: null;\n\t\t\treturn {\n\t\t\t\ttabPanelClientId: getBlockRootClientId( tabClientId ),\n\t\t\t\torientation:\n\t\t\t\t\ttabsMenuAttributes?.layout?.orientation || 'horizontal',\n\t\t\t};\n\t\t},\n\t\t[ tabClientId, tabsMenuClientId ]\n\t);\n\n\tconst isFirst = tabIndex === 0;\n\tconst isLast = tabIndex === tabsCount - 1;\n\tconst isHorizontal = orientation === 'horizontal';\n\n\t// Icons and labels based on orientation (respects RTL for horizontal)\n\tlet upIcon, downIcon, upLabel, downLabel;\n\tif ( isHorizontal ) {\n\t\tif ( isRTL() ) {\n\t\t\tupIcon = chevronRight;\n\t\t\tdownIcon = chevronLeft;\n\t\t\tupLabel = __( 'Move tab right' );\n\t\t\tdownLabel = __( 'Move tab left' );\n\t\t} else {\n\t\t\tupIcon = chevronLeft;\n\t\t\tdownIcon = chevronRight;\n\t\t\tupLabel = __( 'Move tab left' );\n\t\t\tdownLabel = __( 'Move tab right' );\n\t\t}\n\t} else {\n\t\tupIcon = chevronUp;\n\t\tdownIcon = chevronDown;\n\t\tupLabel = __( 'Move tab up' );\n\t\tdownLabel = __( 'Move tab down' );\n\t}\n\n\t// Handle moving tab and updating active index to follow the moved tab\n\tconst handleMoveUp = () => {\n\t\tmoveBlocksUp( [ tabClientId ], tabPanelClientId );\n\t\t// Update editorActiveTabIndex to follow the moved tab\n\t\tif ( tabsClientId ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tupdateBlockAttributes( tabsClientId, {\n\t\t\t\teditorActiveTabIndex: tabIndex - 1,\n\t\t\t} );\n\t\t}\n\t};\n\n\tconst handleMoveDown = () => {\n\t\tmoveBlocksDown( [ tabClientId ], tabPanelClientId );\n\t\t// Update editorActiveTabIndex to follow the moved tab\n\t\tif ( tabsClientId ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tupdateBlockAttributes( tabsClientId, {\n\t\t\t\teditorActiveTabIndex: tabIndex + 1,\n\t\t\t} );\n\t\t}\n\t};\n\n\t// Don't render if only one tab\n\tif ( tabsCount <= 1 ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<BlockControls group=\"parent\">\n\t\t\t<ToolbarGroup\n\t\t\t\tclassName={ clsx( 'block-editor-block-mover', {\n\t\t\t\t\t'is-horizontal': isHorizontal,\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t<div className=\"block-editor-block-mover__move-button-container\">\n\t\t\t\t\t<ToolbarItem>\n\t\t\t\t\t\t{ ( itemProps ) => (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t\t'block-editor-block-mover-button',\n\t\t\t\t\t\t\t\t\t'is-up-button'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\ticon={ upIcon }\n\t\t\t\t\t\t\t\tlabel={ upLabel }\n\t\t\t\t\t\t\t\tdisabled={ isFirst }\n\t\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\t\tonClick={ handleMoveUp }\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t{ ...itemProps }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</ToolbarItem>\n\t\t\t\t\t<ToolbarItem>\n\t\t\t\t\t\t{ ( itemProps ) => (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t\t'block-editor-block-mover-button',\n\t\t\t\t\t\t\t\t\t'is-down-button'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\ticon={ downIcon }\n\t\t\t\t\t\t\t\tlabel={ downLabel }\n\t\t\t\t\t\t\t\tdisabled={ isLast }\n\t\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\t\tonClick={ handleMoveDown }\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t{ ...itemProps }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</ToolbarItem>\n\t\t\t\t</div>\n\t\t\t</ToolbarGroup>\n\t\t</BlockControls>\n\t);\n}\n\nexport default function Controls( {\n\ttabsClientId,\n\ttabClientId,\n\ttabIndex,\n\ttabsCount,\n\ttabsMenuClientId,\n} ) {\n\treturn (\n\t\t<>\n\t\t\t<TabBlockMover\n\t\t\t\ttabClientId={ tabClientId }\n\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\ttabsCount={ tabsCount }\n\t\t\t\ttabsMenuClientId={ tabsMenuClientId }\n\t\t\t\ttabsClientId={ tabsClientId }\n\t\t\t/>\n\t\t\t<AddTabToolbarControl tabsClientId={ tabsClientId } />\n\t\t\t<RemoveTabToolbarControl tabsClientId={ tabsClientId } />\n\t\t</>\n\t);\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAAiB;AAKjB,kBAA0B;AAC1B,0BAGO;AACP,wBAAkD;AAClD,mBAKO;AACP,kBAAuC;AAKvC,qCAAiC;AACjC,wCAAoC;AA8FhC;AA5FJ,SAAS,cAAe;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAAI;AACH,QAAM;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,QAAI,yBAAa,oBAAAA,KAAiB;AAElC,QAAM,EAAE,kBAAkB,YAAY,QAAI;AAAA,IACzC,CAAE,WAAY;AACb,YAAM,EAAE,sBAAsB,mBAAmB,IAChD,OAAQ,oBAAAA,KAAiB;AAG1B,YAAM,qBAAqB,mBACxB,mBAAoB,gBAAiB,IACrC;AACH,aAAO;AAAA,QACN,kBAAkB,qBAAsB,WAAY;AAAA,QACpD,aACC,oBAAoB,QAAQ,eAAe;AAAA,MAC7C;AAAA,IACD;AAAA,IACA,CAAE,aAAa,gBAAiB;AAAA,EACjC;AAEA,QAAM,UAAU,aAAa;AAC7B,QAAM,SAAS,aAAa,YAAY;AACxC,QAAM,eAAe,gBAAgB;AAGrC,MAAI,QAAQ,UAAU,SAAS;AAC/B,MAAK,cAAe;AACnB,YAAK,mBAAM,GAAI;AACd,eAAS;AACT,iBAAW;AACX,oBAAU,gBAAI,gBAAiB;AAC/B,sBAAY,gBAAI,eAAgB;AAAA,IACjC,OAAO;AACN,eAAS;AACT,iBAAW;AACX,oBAAU,gBAAI,eAAgB;AAC9B,sBAAY,gBAAI,gBAAiB;AAAA,IAClC;AAAA,EACD,OAAO;AACN,aAAS;AACT,eAAW;AACX,kBAAU,gBAAI,aAAc;AAC5B,oBAAY,gBAAI,eAAgB;AAAA,EACjC;AAGA,QAAM,eAAe,MAAM;AAC1B,iBAAc,CAAE,WAAY,GAAG,gBAAiB;AAEhD,QAAK,cAAe;AACnB,8CAAwC;AACxC,4BAAuB,cAAc;AAAA,QACpC,sBAAsB,WAAW;AAAA,MAClC,CAAE;AAAA,IACH;AAAA,EACD;AAEA,QAAM,iBAAiB,MAAM;AAC5B,mBAAgB,CAAE,WAAY,GAAG,gBAAiB;AAElD,QAAK,cAAe;AACnB,8CAAwC;AACxC,4BAAuB,cAAc;AAAA,QACpC,sBAAsB,WAAW;AAAA,MAClC,CAAE;AAAA,IACH;AAAA,EACD;AAGA,MAAK,aAAa,GAAI;AACrB,WAAO;AAAA,EACR;AAEA,SACC,4CAAC,qCAAc,OAAM,UACpB;AAAA,IAAC;AAAA;AAAA,MACA,eAAY,YAAAC,SAAM,4BAA4B;AAAA,QAC7C,iBAAiB;AAAA,MAClB,CAAE;AAAA,MAEF,uDAAC,SAAI,WAAU,mDACd;AAAA,oDAAC,iCACE,WAAE,cACH;AAAA,UAAC;AAAA;AAAA,YACA,eAAY,YAAAA;AAAA,cACX;AAAA,cACA;AAAA,YACD;AAAA,YACA,MAAO;AAAA,YACP,OAAQ;AAAA,YACR,UAAW;AAAA,YACX,wBAAsB;AAAA,YACtB,SAAU;AAAA,YACV,uBAAqB;AAAA,YACnB,GAAG;AAAA;AAAA,QACN,GAEF;AAAA,QACA,4CAAC,iCACE,WAAE,cACH;AAAA,UAAC;AAAA;AAAA,YACA,eAAY,YAAAA;AAAA,cACX;AAAA,cACA;AAAA,YACD;AAAA,YACA,MAAO;AAAA,YACP,OAAQ;AAAA,YACR,UAAW;AAAA,YACX,wBAAsB;AAAA,YACtB,SAAU;AAAA,YACV,uBAAqB;AAAA,YACnB,GAAG;AAAA;AAAA,QACN,GAEF;AAAA,SACD;AAAA;AAAA,EACD,GACD;AAEF;AAEe,SAAR,SAA2B;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAAI;AACH,SACC,4EACC;AAAA;AAAA,MAAC;AAAA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,IACD;AAAA,IACA,4CAAC,+BAAAC,SAAA,EAAqB,cAA8B;AAAA,IACpD,4CAAC,kCAAAC,SAAA,EAAwB,cAA8B;AAAA,KACxD;AAEF;",
6
- "names": ["blockEditorStore", "clsx", "AddTabToolbarControl", "RemoveTabToolbarControl"]
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { BlockControls } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport AddTabToolbarControl from '../tab/add-tab-toolbar-control';\nimport RemoveTabToolbarControl from '../tab/remove-tab-toolbar-control';\n\nexport default function Controls( { tabsClientId } ) {\n\treturn (\n\t\t<BlockControls>\n\t\t\t<AddTabToolbarControl tabsClientId={ tabsClientId } />\n\t\t\t<RemoveTabToolbarControl tabsClientId={ tabsClientId } />\n\t\t</BlockControls>\n\t);\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,0BAA8B;AAK9B,qCAAiC;AACjC,wCAAoC;AAIlC;AAFa,SAAR,SAA2B,EAAE,aAAa,GAAI;AACpD,SACC,6CAAC,qCACA;AAAA,gDAAC,+BAAAA,SAAA,EAAqB,cAA8B;AAAA,IACpD,4CAAC,kCAAAC,SAAA,EAAwB,cAA8B;AAAA,KACxD;AAEF;",
6
+ "names": ["AddTabToolbarControl", "RemoveTabToolbarControl"]
7
7
  }
@@ -30,7 +30,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
30
30
  // packages/block-library/src/tabs-menu-item/edit.js
31
31
  var edit_exports = {};
32
32
  __export(edit_exports, {
33
- default: () => Edit
33
+ default: () => edit_default
34
34
  });
35
35
  module.exports = __toCommonJS(edit_exports);
36
36
  var import_clsx = __toESM(require("clsx"));
@@ -38,112 +38,99 @@ var import_i18n = require("@wordpress/i18n");
38
38
  var import_block_editor = require("@wordpress/block-editor");
39
39
  var import_data = require("@wordpress/data");
40
40
  var import_element = require("@wordpress/element");
41
- var import_slug_from_label = __toESM(require("../tab/slug-from-label.cjs"));
42
41
  var import_controls = __toESM(require("./controls.cjs"));
43
42
  var import_jsx_runtime = require("react/jsx-runtime");
43
+ var EMPTY_ARRAY = [];
44
44
  function Edit({
45
+ attributes,
45
46
  context,
46
47
  clientId,
47
48
  __unstableLayoutClassNames: layoutClassNames
48
49
  }) {
49
- const tabIndex = context["core/tabs-menu-item-index"] ?? 0;
50
- const tabId = context["core/tabs-menu-item-id"] ?? "";
51
- const tabLabel = context["core/tabs-menu-item-label"] ?? "";
52
- const tabClientId = context["core/tabs-menu-item-clientId"] ?? "";
53
- const contextTabsList = context["core/tabs-list"];
54
- const tabsList = (0, import_element.useMemo)(
55
- () => contextTabsList || [],
56
- [contextTabsList]
57
- );
50
+ const tabsList = context["core/tabs-list"] || EMPTY_ARRAY;
58
51
  const activeTabIndex = context["core/tabs-activeTabIndex"] ?? 0;
59
52
  const editorActiveTabIndex = context["core/tabs-editorActiveTabIndex"];
60
53
  const effectiveActiveIndex = (0, import_element.useMemo)(() => {
61
54
  return editorActiveTabIndex ?? activeTabIndex;
62
55
  }, [editorActiveTabIndex, activeTabIndex]);
63
- const isActiveTab = tabIndex === effectiveActiveIndex;
64
- const { __unstableMarkNextChangeAsNotPersistent } = (0, import_data.useDispatch)(import_block_editor.store);
65
- const { tabsClientId, tabsMenuClientId, selectedTabClientId } = (0, import_data.useSelect)(
56
+ const { menuItemIndex, tabsClientId, selectedTabClientId } = (0, import_data.useSelect)(
66
57
  (select) => {
67
58
  const {
59
+ getBlockOrder,
68
60
  getBlockRootClientId,
69
61
  getSelectedBlockClientIds,
70
62
  hasSelectedInnerBlock
71
63
  } = select(import_block_editor.store);
72
64
  const _tabsMenuClientId = getBlockRootClientId(clientId);
73
65
  const _tabsClientId = _tabsMenuClientId ? getBlockRootClientId(_tabsMenuClientId) : null;
66
+ const siblings = getBlockOrder(_tabsMenuClientId);
67
+ const _menuItemIndex = siblings.indexOf(clientId);
74
68
  const selectedIds = getSelectedBlockClientIds();
75
- let selectedTab = null;
76
- for (const tab of tabsList) {
77
- if (selectedIds.includes(tab.clientId) || hasSelectedInnerBlock(tab.clientId, true)) {
78
- selectedTab = tab.clientId;
69
+ let _selectedTabClientId = null;
70
+ for (const tab2 of tabsList) {
71
+ if (selectedIds.includes(tab2.clientId) || hasSelectedInnerBlock(tab2.clientId, true)) {
72
+ _selectedTabClientId = tab2.clientId;
79
73
  break;
80
74
  }
81
75
  }
82
76
  return {
77
+ menuItemIndex: _menuItemIndex,
83
78
  tabsClientId: _tabsClientId,
84
- tabsMenuClientId: _tabsMenuClientId,
85
- selectedTabClientId: selectedTab
79
+ selectedTabClientId: _selectedTabClientId
86
80
  };
87
81
  },
88
82
  [clientId, tabsList]
89
83
  );
90
- const isSelectedTab = tabClientId === selectedTabClientId;
91
- const { updateBlockAttributes } = (0, import_data.useDispatch)(import_block_editor.store);
92
- const handleLabelChange = (0, import_element.useCallback)(
93
- (newLabel) => {
94
- if (tabClientId) {
95
- updateBlockAttributes(tabClientId, {
96
- label: newLabel,
97
- anchor: (0, import_slug_from_label.default)(newLabel, tabIndex)
98
- });
99
- }
100
- },
101
- [updateBlockAttributes, tabClientId, tabIndex]
102
- );
84
+ const tabAnchor = attributes.anchor?.replace(/-button$/, "") ?? "";
85
+ const tab = tabAnchor && tabsList.find((t) => t.id === tabAnchor) || tabsList[menuItemIndex] || {};
86
+ const tabListIndex = tab.index ?? menuItemIndex;
87
+ const tabId = tab.id || `tab-${menuItemIndex}`;
88
+ const tabClientId = tab.clientId || "";
89
+ const label = tab.label || "";
90
+ const isActive = tabListIndex === effectiveActiveIndex;
91
+ const isSelected = tabClientId === selectedTabClientId;
92
+ const { __unstableMarkNextChangeAsNotPersistent, updateBlockAttributes } = (0, import_data.useDispatch)(import_block_editor.store);
103
93
  const handleTabClick = (0, import_element.useCallback)(
104
94
  (event) => {
105
95
  event.preventDefault();
106
- if (tabsClientId && tabIndex !== effectiveActiveIndex) {
96
+ if (tabsClientId && tabListIndex !== effectiveActiveIndex) {
107
97
  __unstableMarkNextChangeAsNotPersistent();
108
98
  updateBlockAttributes(tabsClientId, {
109
- editorActiveTabIndex: tabIndex
99
+ editorActiveTabIndex: tabListIndex
110
100
  });
111
101
  }
112
102
  },
113
103
  [
114
104
  tabsClientId,
115
- tabIndex,
105
+ tabListIndex,
116
106
  effectiveActiveIndex,
117
107
  updateBlockAttributes,
118
108
  __unstableMarkNextChangeAsNotPersistent
119
109
  ]
120
110
  );
121
- const tabPanelId = tabId || `tab-${tabIndex}`;
122
- const tabLabelId = `${tabPanelId}--tab`;
111
+ const handleLabelChange = (0, import_element.useCallback)(
112
+ (newLabel) => {
113
+ if (tabClientId) {
114
+ updateBlockAttributes(tabClientId, { label: newLabel });
115
+ }
116
+ },
117
+ [tabClientId, updateBlockAttributes]
118
+ );
123
119
  const blockProps = (0, import_block_editor.useBlockProps)({
124
120
  className: (0, import_clsx.default)(layoutClassNames, {
125
- "is-active": isActiveTab,
126
- "is-selected": isSelectedTab
121
+ "is-active": isActive,
122
+ "is-selected": isSelected
127
123
  }),
128
- "aria-controls": tabPanelId,
129
- "aria-selected": isActiveTab,
130
- id: tabLabelId,
124
+ "aria-controls": tabId,
125
+ "aria-selected": isActive,
126
+ id: `${tabId}--tab`,
131
127
  role: "tab",
132
128
  tabIndex: -1,
133
129
  onClick: handleTabClick
134
130
  });
135
131
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
136
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
137
- import_controls.default,
138
- {
139
- tabsClientId,
140
- tabClientId,
141
- tabIndex,
142
- tabsCount: tabsList.length,
143
- tabsMenuClientId
144
- }
145
- ),
146
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { ...blockProps, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
132
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_controls.default, { tabsClientId }),
133
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { ...blockProps, type: "button", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
147
134
  import_block_editor.RichText,
148
135
  {
149
136
  tagName: "span",
@@ -151,12 +138,13 @@ function Edit({
151
138
  placeholder: (0, import_i18n.sprintf)(
152
139
  /* translators: %d is the tab index + 1 */
153
140
  (0, import_i18n.__)("Tab title %d"),
154
- tabIndex + 1
141
+ menuItemIndex + 1
155
142
  ),
156
- value: tabLabel || "",
143
+ value: label,
157
144
  onChange: handleLabelChange
158
145
  }
159
146
  ) })
160
147
  ] });
161
148
  }
149
+ var edit_default = Edit;
162
150
  //# sourceMappingURL=edit.cjs.map