@wordpress/block-library 9.40.1 → 9.40.2-next.v.202602241322.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 (138) hide show
  1. package/build/icon/block.json +9 -1
  2. package/build/icon/components/custom-inserter/icon-grid.cjs +1 -1
  3. package/build/icon/components/custom-inserter/icon-grid.cjs.map +2 -2
  4. package/build/icon/components/custom-inserter/index.cjs +1 -1
  5. package/build/icon/components/custom-inserter/index.cjs.map +2 -2
  6. package/build/icon/edit.cjs +15 -7
  7. package/build/icon/edit.cjs.map +2 -2
  8. package/build/image/edit.cjs +1 -1
  9. package/build/image/edit.cjs.map +2 -2
  10. package/build/navigation-overlay-close/edit.cjs +2 -3
  11. package/build/navigation-overlay-close/edit.cjs.map +2 -2
  12. package/build/post-navigation-link/block.json +1 -3
  13. package/build/post-navigation-link/deprecated.cjs +100 -0
  14. package/build/post-navigation-link/deprecated.cjs.map +7 -0
  15. package/build/post-navigation-link/edit.cjs +2 -36
  16. package/build/post-navigation-link/edit.cjs.map +3 -3
  17. package/build/post-navigation-link/index.cjs +2 -0
  18. package/build/post-navigation-link/index.cjs.map +3 -3
  19. package/build/post-title/block.json +1 -3
  20. package/build/post-title/deprecated.cjs +82 -1
  21. package/build/post-title/deprecated.cjs.map +3 -3
  22. package/build/post-title/edit.cjs +10 -36
  23. package/build/post-title/edit.cjs.map +3 -3
  24. package/build/pullquote/deprecated.cjs +6 -6
  25. package/build/pullquote/deprecated.cjs.map +2 -2
  26. package/build/query/block.json +1 -2
  27. package/build/query-title/block.json +1 -3
  28. package/build/query-title/deprecated.cjs +70 -1
  29. package/build/query-title/deprecated.cjs.map +3 -3
  30. package/build/query-title/edit.cjs +17 -35
  31. package/build/query-title/edit.cjs.map +3 -3
  32. package/build/site-tagline/block.json +6 -4
  33. package/build/site-tagline/deprecated.cjs +66 -1
  34. package/build/site-tagline/deprecated.cjs.map +3 -3
  35. package/build/site-tagline/edit.cjs +14 -28
  36. package/build/site-tagline/edit.cjs.map +3 -3
  37. package/build/site-title/block.json +1 -3
  38. package/build/site-title/deprecated.cjs +79 -1
  39. package/build/site-title/deprecated.cjs.map +3 -3
  40. package/build/site-title/edit.cjs +14 -30
  41. package/build/site-title/edit.cjs.map +3 -3
  42. package/build/tabs-menu-item/block.json +1 -26
  43. package/build/tabs-menu-item/controls.cjs +2 -100
  44. package/build/tabs-menu-item/controls.cjs.map +3 -3
  45. package/build/tabs-menu-item/edit.cjs +6 -65
  46. package/build/tabs-menu-item/edit.cjs.map +2 -2
  47. package/build/tabs-menu-item/save.cjs +1 -15
  48. package/build/tabs-menu-item/save.cjs.map +2 -2
  49. package/build-module/icon/block.json +9 -1
  50. package/build-module/icon/components/custom-inserter/icon-grid.mjs +1 -1
  51. package/build-module/icon/components/custom-inserter/icon-grid.mjs.map +2 -2
  52. package/build-module/icon/components/custom-inserter/index.mjs +1 -1
  53. package/build-module/icon/components/custom-inserter/index.mjs.map +2 -2
  54. package/build-module/icon/edit.mjs +15 -7
  55. package/build-module/icon/edit.mjs.map +2 -2
  56. package/build-module/image/edit.mjs +1 -1
  57. package/build-module/image/edit.mjs.map +2 -2
  58. package/build-module/navigation-overlay-close/edit.mjs +2 -3
  59. package/build-module/navigation-overlay-close/edit.mjs.map +2 -2
  60. package/build-module/post-navigation-link/block.json +1 -3
  61. package/build-module/post-navigation-link/deprecated.mjs +69 -0
  62. package/build-module/post-navigation-link/deprecated.mjs.map +7 -0
  63. package/build-module/post-navigation-link/edit.mjs +3 -30
  64. package/build-module/post-navigation-link/edit.mjs.map +2 -2
  65. package/build-module/post-navigation-link/index.mjs +2 -0
  66. package/build-module/post-navigation-link/index.mjs.map +2 -2
  67. package/build-module/post-title/block.json +1 -3
  68. package/build-module/post-title/deprecated.mjs +82 -1
  69. package/build-module/post-title/deprecated.mjs.map +2 -2
  70. package/build-module/post-title/edit.mjs +10 -27
  71. package/build-module/post-title/edit.mjs.map +2 -2
  72. package/build-module/pullquote/deprecated.mjs +6 -6
  73. package/build-module/pullquote/deprecated.mjs.map +2 -2
  74. package/build-module/query/block.json +1 -2
  75. package/build-module/query-title/block.json +1 -3
  76. package/build-module/query-title/deprecated.mjs +70 -1
  77. package/build-module/query-title/deprecated.mjs.map +2 -2
  78. package/build-module/query-title/edit.mjs +17 -36
  79. package/build-module/query-title/edit.mjs.map +2 -2
  80. package/build-module/site-tagline/block.json +6 -4
  81. package/build-module/site-tagline/deprecated.mjs +66 -1
  82. package/build-module/site-tagline/deprecated.mjs.map +2 -2
  83. package/build-module/site-tagline/edit.mjs +14 -29
  84. package/build-module/site-tagline/edit.mjs.map +2 -2
  85. package/build-module/site-title/block.json +1 -3
  86. package/build-module/site-title/deprecated.mjs +79 -1
  87. package/build-module/site-title/deprecated.mjs.map +2 -2
  88. package/build-module/site-title/edit.mjs +14 -31
  89. package/build-module/site-title/edit.mjs.map +2 -2
  90. package/build-module/tabs-menu-item/block.json +1 -26
  91. package/build-module/tabs-menu-item/controls.mjs +3 -104
  92. package/build-module/tabs-menu-item/controls.mjs.map +2 -2
  93. package/build-module/tabs-menu-item/edit.mjs +6 -66
  94. package/build-module/tabs-menu-item/edit.mjs.map +2 -2
  95. package/build-module/tabs-menu-item/save.mjs +1 -15
  96. package/build-module/tabs-menu-item/save.mjs.map +2 -2
  97. package/build-style/editor-rtl.css +0 -5
  98. package/build-style/editor.css +0 -5
  99. package/build-style/style-rtl.css +3 -12
  100. package/build-style/style.css +3 -12
  101. package/build-style/tabs-menu-item/editor-rtl.css +0 -5
  102. package/build-style/tabs-menu-item/editor.css +0 -5
  103. package/build-style/tabs-menu-item/style-rtl.css +3 -12
  104. package/build-style/tabs-menu-item/style.css +3 -12
  105. package/package.json +38 -38
  106. package/src/icon/block.json +9 -1
  107. package/src/icon/components/custom-inserter/icon-grid.js +1 -1
  108. package/src/icon/components/custom-inserter/index.js +1 -1
  109. package/src/icon/edit.js +20 -10
  110. package/src/icon/index.php +1 -3
  111. package/src/image/edit.js +1 -1
  112. package/src/image/index.php +1 -4
  113. package/src/navigation-overlay-close/edit.js +4 -3
  114. package/src/post-featured-image/index.php +2 -4
  115. package/src/post-navigation-link/block.json +1 -3
  116. package/src/post-navigation-link/deprecated.js +72 -0
  117. package/src/post-navigation-link/edit.js +2 -35
  118. package/src/post-navigation-link/index.js +2 -0
  119. package/src/post-title/block.json +1 -3
  120. package/src/post-title/deprecated.js +86 -1
  121. package/src/post-title/edit.js +2 -18
  122. package/src/pullquote/deprecated.js +3 -3
  123. package/src/query/block.json +1 -2
  124. package/src/query-title/block.json +1 -3
  125. package/src/query-title/deprecated.js +74 -1
  126. package/src/query-title/edit.js +11 -27
  127. package/src/site-tagline/block.json +6 -4
  128. package/src/site-tagline/deprecated.js +70 -1
  129. package/src/site-tagline/edit.js +9 -22
  130. package/src/site-title/block.json +1 -3
  131. package/src/site-title/deprecated.js +83 -1
  132. package/src/site-title/edit.js +9 -22
  133. package/src/tabs-menu-item/block.json +1 -26
  134. package/src/tabs-menu-item/controls.js +0 -108
  135. package/src/tabs-menu-item/edit.js +6 -79
  136. package/src/tabs-menu-item/editor.scss +0 -6
  137. package/src/tabs-menu-item/save.js +1 -26
  138. package/src/tabs-menu-item/style.scss +3 -14
@@ -3,10 +3,7 @@ import clsx from "clsx";
3
3
  import { __, isRTL } from "@wordpress/i18n";
4
4
  import {
5
5
  BlockControls,
6
- InspectorControls,
7
- store as blockEditorStore,
8
- __experimentalColorGradientSettingsDropdown as ColorGradientSettingsDropdown,
9
- __experimentalUseMultipleOriginColorsAndGradients as useMultipleOriginColorsAndGradients
6
+ store as blockEditorStore
10
7
  } from "@wordpress/block-editor";
11
8
  import { ToolbarGroup, ToolbarItem, Button } from "@wordpress/components";
12
9
  import {
@@ -130,30 +127,12 @@ function TabBlockMover({
130
127
  ) });
131
128
  }
132
129
  function Controls({
133
- attributes,
134
- setAttributes,
135
- clientId,
136
130
  tabsClientId,
137
131
  tabClientId,
138
132
  tabIndex,
139
133
  tabsCount,
140
- tabsMenuClientId,
141
- activeBackgroundColor,
142
- setActiveBackgroundColor,
143
- activeTextColor,
144
- setActiveTextColor,
145
- hoverBackgroundColor,
146
- setHoverBackgroundColor,
147
- hoverTextColor,
148
- setHoverTextColor
134
+ tabsMenuClientId
149
135
  }) {
150
- const {
151
- customActiveBackgroundColor,
152
- customActiveTextColor,
153
- customHoverBackgroundColor,
154
- customHoverTextColor
155
- } = attributes;
156
- const colorSettings = useMultipleOriginColorsAndGradients();
157
136
  return /* @__PURE__ */ jsxs(Fragment, { children: [
158
137
  /* @__PURE__ */ jsx(
159
138
  TabBlockMover,
@@ -166,87 +145,7 @@ function Controls({
166
145
  }
167
146
  ),
168
147
  /* @__PURE__ */ jsx(AddTabToolbarControl, { tabsClientId }),
169
- /* @__PURE__ */ jsx(RemoveTabToolbarControl, { tabsClientId }),
170
- /* @__PURE__ */ jsx(InspectorControls, { group: "color", children: /* @__PURE__ */ jsx(
171
- ColorGradientSettingsDropdown,
172
- {
173
- settings: [
174
- {
175
- label: __("Active background"),
176
- colorValue: activeBackgroundColor?.color ?? customActiveBackgroundColor,
177
- onColorChange: (value) => {
178
- setActiveBackgroundColor(value);
179
- setAttributes({
180
- customActiveBackgroundColor: value
181
- });
182
- },
183
- resetAllFilter: () => {
184
- setActiveBackgroundColor(void 0);
185
- setAttributes({
186
- customActiveBackgroundColor: void 0
187
- });
188
- },
189
- clearable: true
190
- },
191
- {
192
- label: __("Active text"),
193
- colorValue: activeTextColor?.color ?? customActiveTextColor,
194
- onColorChange: (value) => {
195
- setActiveTextColor(value);
196
- setAttributes({
197
- customActiveTextColor: value
198
- });
199
- },
200
- resetAllFilter: () => {
201
- setActiveTextColor(void 0);
202
- setAttributes({
203
- customActiveTextColor: void 0
204
- });
205
- },
206
- clearable: true
207
- },
208
- {
209
- label: __("Hover background"),
210
- colorValue: hoverBackgroundColor?.color ?? customHoverBackgroundColor,
211
- onColorChange: (value) => {
212
- setHoverBackgroundColor(value);
213
- setAttributes({
214
- customHoverBackgroundColor: value
215
- });
216
- },
217
- resetAllFilter: () => {
218
- setHoverBackgroundColor(void 0);
219
- setAttributes({
220
- customHoverBackgroundColor: void 0
221
- });
222
- },
223
- clearable: true
224
- },
225
- {
226
- label: __("Hover text"),
227
- colorValue: hoverTextColor?.color ?? customHoverTextColor,
228
- onColorChange: (value) => {
229
- setHoverTextColor(value);
230
- setAttributes({
231
- customHoverTextColor: value
232
- });
233
- },
234
- resetAllFilter: () => {
235
- setHoverTextColor(void 0);
236
- setAttributes({
237
- customHoverTextColor: void 0
238
- });
239
- },
240
- clearable: true
241
- }
242
- ],
243
- panelId: clientId,
244
- disableCustomColors: false,
245
- __experimentalIsRenderedInSidebar: true,
246
- __next40pxDefaultSize: true,
247
- ...colorSettings
248
- }
249
- ) })
148
+ /* @__PURE__ */ jsx(RemoveTabToolbarControl, { tabsClientId })
250
149
  ] });
251
150
  }
252
151
  export {
@@ -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\tInspectorControls,\n\tstore as blockEditorStore,\n\t__experimentalColorGradientSettingsDropdown as ColorGradientSettingsDropdown,\n\t__experimentalUseMultipleOriginColorsAndGradients as useMultipleOriginColorsAndGradients,\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\tattributes,\n\tsetAttributes,\n\tclientId,\n\ttabsClientId,\n\ttabClientId,\n\ttabIndex,\n\ttabsCount,\n\ttabsMenuClientId,\n\tactiveBackgroundColor,\n\tsetActiveBackgroundColor,\n\tactiveTextColor,\n\tsetActiveTextColor,\n\thoverBackgroundColor,\n\tsetHoverBackgroundColor,\n\thoverTextColor,\n\tsetHoverTextColor,\n} ) {\n\tconst {\n\t\tcustomActiveBackgroundColor,\n\t\tcustomActiveTextColor,\n\t\tcustomHoverBackgroundColor,\n\t\tcustomHoverTextColor,\n\t} = attributes;\n\n\tconst colorSettings = useMultipleOriginColorsAndGradients();\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\t<InspectorControls group=\"color\">\n\t\t\t\t<ColorGradientSettingsDropdown\n\t\t\t\t\tsettings={ [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( 'Active background' ),\n\t\t\t\t\t\t\tcolorValue:\n\t\t\t\t\t\t\t\tactiveBackgroundColor?.color ??\n\t\t\t\t\t\t\t\tcustomActiveBackgroundColor,\n\t\t\t\t\t\t\tonColorChange: ( value ) => {\n\t\t\t\t\t\t\t\tsetActiveBackgroundColor( value );\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tcustomActiveBackgroundColor: value,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tresetAllFilter: () => {\n\t\t\t\t\t\t\t\tsetActiveBackgroundColor( undefined );\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tcustomActiveBackgroundColor: undefined,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tclearable: true,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( 'Active text' ),\n\t\t\t\t\t\t\tcolorValue:\n\t\t\t\t\t\t\t\tactiveTextColor?.color ?? customActiveTextColor,\n\t\t\t\t\t\t\tonColorChange: ( value ) => {\n\t\t\t\t\t\t\t\tsetActiveTextColor( value );\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tcustomActiveTextColor: value,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tresetAllFilter: () => {\n\t\t\t\t\t\t\t\tsetActiveTextColor( undefined );\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tcustomActiveTextColor: undefined,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tclearable: true,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( 'Hover background' ),\n\t\t\t\t\t\t\tcolorValue:\n\t\t\t\t\t\t\t\thoverBackgroundColor?.color ??\n\t\t\t\t\t\t\t\tcustomHoverBackgroundColor,\n\t\t\t\t\t\t\tonColorChange: ( value ) => {\n\t\t\t\t\t\t\t\tsetHoverBackgroundColor( value );\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tcustomHoverBackgroundColor: value,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tresetAllFilter: () => {\n\t\t\t\t\t\t\t\tsetHoverBackgroundColor( undefined );\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tcustomHoverBackgroundColor: undefined,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tclearable: true,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( 'Hover text' ),\n\t\t\t\t\t\t\tcolorValue:\n\t\t\t\t\t\t\t\thoverTextColor?.color ?? customHoverTextColor,\n\t\t\t\t\t\t\tonColorChange: ( value ) => {\n\t\t\t\t\t\t\t\tsetHoverTextColor( value );\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tcustomHoverTextColor: value,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tresetAllFilter: () => {\n\t\t\t\t\t\t\t\tsetHoverTextColor( undefined );\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tcustomHoverTextColor: undefined,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tclearable: true,\n\t\t\t\t\t\t},\n\t\t\t\t\t] }\n\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t\tdisableCustomColors={ false }\n\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t{ ...colorSettings }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n}\n"],
5
- "mappings": "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",
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": "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",
6
6
  "names": []
7
7
  }
@@ -3,7 +3,6 @@ import clsx from "clsx";
3
3
  import { __, sprintf } from "@wordpress/i18n";
4
4
  import {
5
5
  useBlockProps,
6
- withColors,
7
6
  store as blockEditorStore,
8
7
  RichText
9
8
  } from "@wordpress/block-editor";
@@ -13,18 +12,8 @@ import slugFromLabel from "../tab/slug-from-label.mjs";
13
12
  import Controls from "./controls.mjs";
14
13
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
15
14
  function Edit({
16
- attributes,
17
- setAttributes,
18
15
  context,
19
16
  clientId,
20
- activeBackgroundColor,
21
- setActiveBackgroundColor,
22
- activeTextColor,
23
- setActiveTextColor,
24
- hoverBackgroundColor,
25
- setHoverBackgroundColor,
26
- hoverTextColor,
27
- setHoverTextColor,
28
17
  __unstableLayoutClassNames: layoutClassNames
29
18
  }) {
30
19
  const tabIndex = context["core/tabs-menu-item-index"] ?? 0;
@@ -99,35 +88,6 @@ function Edit({
99
88
  __unstableMarkNextChangeAsNotPersistent
100
89
  ]
101
90
  );
102
- const customColorStyles = useMemo(() => {
103
- const styles = {};
104
- const activeBg = activeBackgroundColor?.color || attributes.customActiveBackgroundColor;
105
- const activeText = activeTextColor?.color || attributes.customActiveTextColor;
106
- const hoverBg = hoverBackgroundColor?.color || attributes.customHoverBackgroundColor;
107
- const hoverText = hoverTextColor?.color || attributes.customHoverTextColor;
108
- if (activeBg) {
109
- styles["--custom-tab-active-color"] = activeBg;
110
- }
111
- if (activeText) {
112
- styles["--custom-tab-active-text-color"] = activeText;
113
- }
114
- if (hoverBg) {
115
- styles["--custom-tab-hover-color"] = hoverBg;
116
- }
117
- if (hoverText) {
118
- styles["--custom-tab-hover-text-color"] = hoverText;
119
- }
120
- return styles;
121
- }, [
122
- activeBackgroundColor?.color,
123
- attributes.customActiveBackgroundColor,
124
- activeTextColor?.color,
125
- attributes.customActiveTextColor,
126
- hoverBackgroundColor?.color,
127
- attributes.customHoverBackgroundColor,
128
- hoverTextColor?.color,
129
- attributes.customHoverTextColor
130
- ]);
131
91
  const tabPanelId = tabId || `tab-${tabIndex}`;
132
92
  const tabLabelId = `${tabPanelId}--tab`;
133
93
  const blockProps = useBlockProps({
@@ -135,7 +95,6 @@ function Edit({
135
95
  "is-active": isActiveTab,
136
96
  "is-selected": isSelectedTab
137
97
  }),
138
- style: customColorStyles,
139
98
  "aria-controls": tabPanelId,
140
99
  "aria-selected": isActiveTab,
141
100
  id: tabLabelId,
@@ -147,24 +106,11 @@ function Edit({
147
106
  /* @__PURE__ */ jsx(
148
107
  Controls,
149
108
  {
150
- ...{
151
- attributes,
152
- setAttributes,
153
- clientId,
154
- tabsClientId,
155
- tabClientId,
156
- tabIndex,
157
- tabsCount: tabsList.length,
158
- tabsMenuClientId,
159
- activeBackgroundColor,
160
- setActiveBackgroundColor,
161
- activeTextColor,
162
- setActiveTextColor,
163
- hoverBackgroundColor,
164
- setHoverBackgroundColor,
165
- hoverTextColor,
166
- setHoverTextColor
167
- }
109
+ tabsClientId,
110
+ tabClientId,
111
+ tabIndex,
112
+ tabsCount: tabsList.length,
113
+ tabsMenuClientId
168
114
  }
169
115
  ),
170
116
  /* @__PURE__ */ jsx("div", { ...blockProps, children: /* @__PURE__ */ jsx(
@@ -183,13 +129,7 @@ function Edit({
183
129
  ) })
184
130
  ] });
185
131
  }
186
- var edit_default = withColors(
187
- "activeBackgroundColor",
188
- "activeTextColor",
189
- "hoverBackgroundColor",
190
- "hoverTextColor"
191
- )(Edit);
192
132
  export {
193
- edit_default as default
133
+ Edit as default
194
134
  };
195
135
  //# sourceMappingURL=edit.mjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/tabs-menu-item/edit.js"],
4
- "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tuseBlockProps,\n\twithColors,\n\tstore as blockEditorStore,\n\tRichText,\n} from '@wordpress/block-editor';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useCallback, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport slugFromLabel from '../tab/slug-from-label';\nimport Controls from './controls';\n\nfunction Edit( {\n\tattributes,\n\tsetAttributes,\n\tcontext,\n\tclientId,\n\tactiveBackgroundColor,\n\tsetActiveBackgroundColor,\n\tactiveTextColor,\n\tsetActiveTextColor,\n\thoverBackgroundColor,\n\tsetHoverBackgroundColor,\n\thoverTextColor,\n\tsetHoverTextColor,\n\t__unstableLayoutClassNames: layoutClassNames,\n} ) {\n\t// Context from tabs-menu (per-item context via BlockContextProvider)\n\tconst tabIndex = context[ 'core/tabs-menu-item-index' ] ?? 0;\n\tconst tabId = context[ 'core/tabs-menu-item-id' ] ?? '';\n\tconst tabLabel = context[ 'core/tabs-menu-item-label' ] ?? '';\n\tconst tabClientId = context[ 'core/tabs-menu-item-clientId' ] ?? '';\n\n\t// Context from parent tabs block, memoized to prevent unnecessary re-renders.\n\tconst contextTabsList = context[ 'core/tabs-list' ];\n\tconst tabsList = useMemo(\n\t\t() => contextTabsList || [],\n\t\t[ contextTabsList ]\n\t);\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 isActiveTab = tabIndex === effectiveActiveIndex;\n\n\tconst { __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\t// Get parent tabs clientId for updating editorActiveTabIndex\n\tconst { tabsClientId, tabsMenuClientId, selectedTabClientId } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tgetSelectedBlockClientIds,\n\t\t\t\thasSelectedInnerBlock,\n\t\t\t} = select( blockEditorStore );\n\t\t\t// tabs-menu-item -> tabs-menu -> tabs\n\t\t\tconst _tabsMenuClientId = getBlockRootClientId( clientId );\n\t\t\tconst _tabsClientId = _tabsMenuClientId\n\t\t\t\t? getBlockRootClientId( _tabsMenuClientId )\n\t\t\t\t: null;\n\n\t\t\tconst selectedIds = getSelectedBlockClientIds();\n\n\t\t\t// Find if any tab is selected\n\t\t\tlet selectedTab = null;\n\t\t\tfor ( const tab of tabsList ) {\n\t\t\t\tif (\n\t\t\t\t\tselectedIds.includes( tab.clientId ) ||\n\t\t\t\t\thasSelectedInnerBlock( tab.clientId, true )\n\t\t\t\t) {\n\t\t\t\t\tselectedTab = tab.clientId;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\ttabsClientId: _tabsClientId,\n\t\t\t\ttabsMenuClientId: _tabsMenuClientId,\n\t\t\t\tselectedTabClientId: selectedTab,\n\t\t\t};\n\t\t},\n\t\t[ clientId, tabsList ]\n\t);\n\n\tconst isSelectedTab = tabClientId === selectedTabClientId;\n\n\t// Update tab label in the tab block\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\n\tconst handleLabelChange = useCallback(\n\t\t( newLabel ) => {\n\t\t\tif ( tabClientId ) {\n\t\t\t\tupdateBlockAttributes( tabClientId, {\n\t\t\t\t\tlabel: newLabel,\n\t\t\t\t\tanchor: slugFromLabel( newLabel, tabIndex ),\n\t\t\t\t} );\n\t\t\t}\n\t\t},\n\t\t[ updateBlockAttributes, tabClientId, tabIndex ]\n\t);\n\n\t// Update editor active tab index on parent tabs block when tab is clicked\n\tconst handleTabClick = useCallback(\n\t\t( event ) => {\n\t\t\tevent.preventDefault();\n\n\t\t\t// Update the parent tabs block's editorActiveTabIndex (ephemeral, not persisted)\n\t\t\tif ( tabsClientId && tabIndex !== effectiveActiveIndex ) {\n\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\tupdateBlockAttributes( tabsClientId, {\n\t\t\t\t\teditorActiveTabIndex: tabIndex,\n\t\t\t\t} );\n\t\t\t}\n\t\t},\n\t\t[\n\t\t\ttabsClientId,\n\t\t\ttabIndex,\n\t\t\teffectiveActiveIndex,\n\t\t\tupdateBlockAttributes,\n\t\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\t]\n\t);\n\n\t// Build CSS custom properties for active/hover color states\n\tconst customColorStyles = useMemo( () => {\n\t\tconst styles = {};\n\n\t\t// Active/hover colors from custom attributes\n\t\tconst activeBg =\n\t\t\tactiveBackgroundColor?.color ||\n\t\t\tattributes.customActiveBackgroundColor;\n\t\tconst activeText =\n\t\t\tactiveTextColor?.color || attributes.customActiveTextColor;\n\t\tconst hoverBg =\n\t\t\thoverBackgroundColor?.color ||\n\t\t\tattributes.customHoverBackgroundColor;\n\t\tconst hoverText =\n\t\t\thoverTextColor?.color || attributes.customHoverTextColor;\n\n\t\tif ( activeBg ) {\n\t\t\tstyles[ '--custom-tab-active-color' ] = activeBg;\n\t\t}\n\t\tif ( activeText ) {\n\t\t\tstyles[ '--custom-tab-active-text-color' ] = activeText;\n\t\t}\n\t\tif ( hoverBg ) {\n\t\t\tstyles[ '--custom-tab-hover-color' ] = hoverBg;\n\t\t}\n\t\tif ( hoverText ) {\n\t\t\tstyles[ '--custom-tab-hover-text-color' ] = hoverText;\n\t\t}\n\n\t\treturn styles;\n\t}, [\n\t\tactiveBackgroundColor?.color,\n\t\tattributes.customActiveBackgroundColor,\n\t\tactiveTextColor?.color,\n\t\tattributes.customActiveTextColor,\n\t\thoverBackgroundColor?.color,\n\t\tattributes.customHoverBackgroundColor,\n\t\thoverTextColor?.color,\n\t\tattributes.customHoverTextColor,\n\t] );\n\n\tconst tabPanelId = tabId || `tab-${ tabIndex }`;\n\tconst tabLabelId = `${ tabPanelId }--tab`;\n\n\t// Use blockProps for core style engine support\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( layoutClassNames, {\n\t\t\t'is-active': isActiveTab,\n\t\t\t'is-selected': isSelectedTab,\n\t\t} ),\n\t\tstyle: customColorStyles,\n\t\t'aria-controls': tabPanelId,\n\t\t'aria-selected': isActiveTab,\n\t\tid: tabLabelId,\n\t\trole: 'tab',\n\t\ttabIndex: -1,\n\t\tonClick: handleTabClick,\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<Controls\n\t\t\t\t{ ...{\n\t\t\t\t\tattributes,\n\t\t\t\t\tsetAttributes,\n\t\t\t\t\tclientId,\n\t\t\t\t\ttabsClientId,\n\t\t\t\t\ttabClientId,\n\t\t\t\t\ttabIndex,\n\t\t\t\t\ttabsCount: tabsList.length,\n\t\t\t\t\ttabsMenuClientId,\n\t\t\t\t\tactiveBackgroundColor,\n\t\t\t\t\tsetActiveBackgroundColor,\n\t\t\t\t\tactiveTextColor,\n\t\t\t\t\tsetActiveTextColor,\n\t\t\t\t\thoverBackgroundColor,\n\t\t\t\t\tsetHoverBackgroundColor,\n\t\t\t\t\thoverTextColor,\n\t\t\t\t\tsetHoverTextColor,\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<RichText\n\t\t\t\t\ttagName=\"span\"\n\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\tplaceholder={ sprintf(\n\t\t\t\t\t\t/* translators: %d is the tab index + 1 */\n\t\t\t\t\t\t__( 'Tab title %d' ),\n\t\t\t\t\t\ttabIndex + 1\n\t\t\t\t\t) }\n\t\t\t\t\tvalue={ tabLabel || '' }\n\t\t\t\t\tonChange={ handleLabelChange }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default withColors(\n\t'activeBackgroundColor',\n\t'activeTextColor',\n\t'hoverBackgroundColor',\n\t'hoverTextColor'\n)( Edit );\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\tRichText,\n} from '@wordpress/block-editor';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useCallback, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport slugFromLabel from '../tab/slug-from-label';\nimport Controls from './controls';\n\nexport default function Edit( {\n\tcontext,\n\tclientId,\n\t__unstableLayoutClassNames: layoutClassNames,\n} ) {\n\t// Context from tabs-menu (per-item context via BlockContextProvider)\n\tconst tabIndex = context[ 'core/tabs-menu-item-index' ] ?? 0;\n\tconst tabId = context[ 'core/tabs-menu-item-id' ] ?? '';\n\tconst tabLabel = context[ 'core/tabs-menu-item-label' ] ?? '';\n\tconst tabClientId = context[ 'core/tabs-menu-item-clientId' ] ?? '';\n\n\t// Context from parent tabs block, memoized to prevent unnecessary re-renders.\n\tconst contextTabsList = context[ 'core/tabs-list' ];\n\tconst tabsList = useMemo(\n\t\t() => contextTabsList || [],\n\t\t[ contextTabsList ]\n\t);\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 isActiveTab = tabIndex === effectiveActiveIndex;\n\n\tconst { __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\t// Get parent tabs clientId for updating editorActiveTabIndex\n\tconst { tabsClientId, tabsMenuClientId, selectedTabClientId } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tgetSelectedBlockClientIds,\n\t\t\t\thasSelectedInnerBlock,\n\t\t\t} = select( blockEditorStore );\n\t\t\t// tabs-menu-item -> tabs-menu -> tabs\n\t\t\tconst _tabsMenuClientId = getBlockRootClientId( clientId );\n\t\t\tconst _tabsClientId = _tabsMenuClientId\n\t\t\t\t? getBlockRootClientId( _tabsMenuClientId )\n\t\t\t\t: null;\n\n\t\t\tconst selectedIds = getSelectedBlockClientIds();\n\n\t\t\t// Find if any tab is selected\n\t\t\tlet selectedTab = null;\n\t\t\tfor ( const tab of tabsList ) {\n\t\t\t\tif (\n\t\t\t\t\tselectedIds.includes( tab.clientId ) ||\n\t\t\t\t\thasSelectedInnerBlock( tab.clientId, true )\n\t\t\t\t) {\n\t\t\t\t\tselectedTab = tab.clientId;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\ttabsClientId: _tabsClientId,\n\t\t\t\ttabsMenuClientId: _tabsMenuClientId,\n\t\t\t\tselectedTabClientId: selectedTab,\n\t\t\t};\n\t\t},\n\t\t[ clientId, tabsList ]\n\t);\n\n\tconst isSelectedTab = tabClientId === selectedTabClientId;\n\n\t// Update tab label in the tab block\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\n\tconst handleLabelChange = useCallback(\n\t\t( newLabel ) => {\n\t\t\tif ( tabClientId ) {\n\t\t\t\tupdateBlockAttributes( tabClientId, {\n\t\t\t\t\tlabel: newLabel,\n\t\t\t\t\tanchor: slugFromLabel( newLabel, tabIndex ),\n\t\t\t\t} );\n\t\t\t}\n\t\t},\n\t\t[ updateBlockAttributes, tabClientId, tabIndex ]\n\t);\n\n\t// Update editor active tab index on parent tabs block when tab is clicked\n\tconst handleTabClick = useCallback(\n\t\t( event ) => {\n\t\t\tevent.preventDefault();\n\n\t\t\t// Update the parent tabs block's editorActiveTabIndex (ephemeral, not persisted)\n\t\t\tif ( tabsClientId && tabIndex !== effectiveActiveIndex ) {\n\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\tupdateBlockAttributes( tabsClientId, {\n\t\t\t\t\teditorActiveTabIndex: tabIndex,\n\t\t\t\t} );\n\t\t\t}\n\t\t},\n\t\t[\n\t\t\ttabsClientId,\n\t\t\ttabIndex,\n\t\t\teffectiveActiveIndex,\n\t\t\tupdateBlockAttributes,\n\t\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\t]\n\t);\n\n\tconst tabPanelId = tabId || `tab-${ tabIndex }`;\n\tconst tabLabelId = `${ tabPanelId }--tab`;\n\n\t// Use blockProps for core style engine support\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( layoutClassNames, {\n\t\t\t'is-active': isActiveTab,\n\t\t\t'is-selected': isSelectedTab,\n\t\t} ),\n\t\t'aria-controls': tabPanelId,\n\t\t'aria-selected': isActiveTab,\n\t\tid: tabLabelId,\n\t\trole: 'tab',\n\t\ttabIndex: -1,\n\t\tonClick: handleTabClick,\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<Controls\n\t\t\t\ttabsClientId={ tabsClientId }\n\t\t\t\ttabClientId={ tabClientId }\n\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\ttabsCount={ tabsList.length }\n\t\t\t\ttabsMenuClientId={ tabsMenuClientId }\n\t\t\t/>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<RichText\n\t\t\t\t\ttagName=\"span\"\n\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\tplaceholder={ sprintf(\n\t\t\t\t\t\t/* translators: %d is the tab index + 1 */\n\t\t\t\t\t\t__( 'Tab title %d' ),\n\t\t\t\t\t\ttabIndex + 1\n\t\t\t\t\t) }\n\t\t\t\t\tvalue={ tabLabel || '' }\n\t\t\t\t\tonChange={ handleLabelChange }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -1,23 +1,9 @@
1
1
  // packages/block-library/src/tabs-menu-item/save.js
2
2
  import { useBlockProps } from "@wordpress/block-editor";
3
3
  import { jsx } from "react/jsx-runtime";
4
- function save({ attributes }) {
5
- const customColorStyles = {};
6
- if (attributes.customActiveBackgroundColor) {
7
- customColorStyles["--custom-tab-active-color"] = attributes.customActiveBackgroundColor;
8
- }
9
- if (attributes.customActiveTextColor) {
10
- customColorStyles["--custom-tab-active-text-color"] = attributes.customActiveTextColor;
11
- }
12
- if (attributes.customHoverBackgroundColor) {
13
- customColorStyles["--custom-tab-hover-color"] = attributes.customHoverBackgroundColor;
14
- }
15
- if (attributes.customHoverTextColor) {
16
- customColorStyles["--custom-tab-hover-text-color"] = attributes.customHoverTextColor;
17
- }
4
+ function save() {
18
5
  const blockProps = useBlockProps.save({
19
6
  className: "wp-block-tabs-menu-item__template",
20
- style: customColorStyles,
21
7
  type: "button",
22
8
  role: "tab"
23
9
  });
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/tabs-menu-item/save.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useBlockProps } from '@wordpress/block-editor';\n\nexport default function save( { attributes } ) {\n\t// Build CSS custom properties for active/hover colors\n\tconst customColorStyles = {};\n\n\t// Active/hover colors from custom attributes\n\tif ( attributes.customActiveBackgroundColor ) {\n\t\tcustomColorStyles[ '--custom-tab-active-color' ] =\n\t\t\tattributes.customActiveBackgroundColor;\n\t}\n\tif ( attributes.customActiveTextColor ) {\n\t\tcustomColorStyles[ '--custom-tab-active-text-color' ] =\n\t\t\tattributes.customActiveTextColor;\n\t}\n\tif ( attributes.customHoverBackgroundColor ) {\n\t\tcustomColorStyles[ '--custom-tab-hover-color' ] =\n\t\t\tattributes.customHoverBackgroundColor;\n\t}\n\tif ( attributes.customHoverTextColor ) {\n\t\tcustomColorStyles[ '--custom-tab-hover-text-color' ] =\n\t\t\tattributes.customHoverTextColor;\n\t}\n\n\t// useBlockProps.save includes all core style engine classes and styles\n\t// The button content is replaced by PHP during rendering, so we output\n\t// an empty button as a template.\n\tconst blockProps = useBlockProps.save( {\n\t\tclassName: 'wp-block-tabs-menu-item__template',\n\t\tstyle: customColorStyles,\n\t\ttype: 'button',\n\t\trole: 'tab',\n\t} );\n\n\treturn <button { ...blockProps } />;\n}\n"],
5
- "mappings": ";AAGA,SAAS,qBAAqB;AAkCtB;AAhCO,SAAR,KAAuB,EAAE,WAAW,GAAI;AAE9C,QAAM,oBAAoB,CAAC;AAG3B,MAAK,WAAW,6BAA8B;AAC7C,sBAAmB,2BAA4B,IAC9C,WAAW;AAAA,EACb;AACA,MAAK,WAAW,uBAAwB;AACvC,sBAAmB,gCAAiC,IACnD,WAAW;AAAA,EACb;AACA,MAAK,WAAW,4BAA6B;AAC5C,sBAAmB,0BAA2B,IAC7C,WAAW;AAAA,EACb;AACA,MAAK,WAAW,sBAAuB;AACtC,sBAAmB,+BAAgC,IAClD,WAAW;AAAA,EACb;AAKA,QAAM,aAAa,cAAc,KAAM;AAAA,IACtC,WAAW;AAAA,IACX,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAM;AAAA,EACP,CAAE;AAEF,SAAO,oBAAC,YAAS,GAAG,YAAa;AAClC;",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useBlockProps } from '@wordpress/block-editor';\n\nexport default function save() {\n\tconst blockProps = useBlockProps.save( {\n\t\tclassName: 'wp-block-tabs-menu-item__template',\n\t\ttype: 'button',\n\t\trole: 'tab',\n\t} );\n\n\treturn <button { ...blockProps } />;\n}\n"],
5
+ "mappings": ";AAGA,SAAS,qBAAqB;AAStB;AAPO,SAAR,OAAwB;AAC9B,QAAM,aAAa,cAAc,KAAM;AAAA,IACtC,WAAW;AAAA,IACX,MAAM;AAAA,IACN,MAAM;AAAA,EACP,CAAE;AAEF,SAAO,oBAAC,YAAS,GAAG,YAAa;AAClC;",
6
6
  "names": []
7
7
  }
@@ -2325,7 +2325,6 @@ html[dir=rtl] .has-drop-cap:not(:focus)::first-letter {
2325
2325
  }
2326
2326
 
2327
2327
  .wp-block-tabs-menu-item.is-selected {
2328
- outline: 2px solid var(--wp-admin-theme-color, #007cba);
2329
2328
  outline-offset: 2px;
2330
2329
  }
2331
2330
 
@@ -2336,10 +2335,6 @@ html[dir=rtl] .has-drop-cap:not(:focus)::first-letter {
2336
2335
  .block-editor-block-preview__live-content:has(.wp-block-tabs-menu-item) .wp-block-tabs-menu-item {
2337
2336
  flex-basis: 100% !important;
2338
2337
  }
2339
- .block-editor-block-preview__live-content:has(.wp-block-tabs-menu-item):hover > .wp-block-tabs-menu-item {
2340
- background-color: var(--custom-tab-hover-color, #eaeaea) !important;
2341
- color: var(--custom-tab-hover-text-color, #000) !important;
2342
- }
2343
2338
 
2344
2339
  .block-editor-template-part__selection-modal {
2345
2340
  z-index: 1000001;
@@ -2329,7 +2329,6 @@ html[dir=rtl] .has-drop-cap:not(:focus)::first-letter {
2329
2329
  }
2330
2330
 
2331
2331
  .wp-block-tabs-menu-item.is-selected {
2332
- outline: 2px solid var(--wp-admin-theme-color, #007cba);
2333
2332
  outline-offset: 2px;
2334
2333
  }
2335
2334
 
@@ -2340,10 +2339,6 @@ html[dir=rtl] .has-drop-cap:not(:focus)::first-letter {
2340
2339
  .block-editor-block-preview__live-content:has(.wp-block-tabs-menu-item) .wp-block-tabs-menu-item {
2341
2340
  flex-basis: 100% !important;
2342
2341
  }
2343
- .block-editor-block-preview__live-content:has(.wp-block-tabs-menu-item):hover > .wp-block-tabs-menu-item {
2344
- background-color: var(--custom-tab-hover-color, #eaeaea) !important;
2345
- color: var(--custom-tab-hover-text-color, #000) !important;
2346
- }
2347
2342
 
2348
2343
  .block-editor-template-part__selection-modal {
2349
2344
  z-index: 1000001;
@@ -4580,8 +4580,7 @@ ul.wp-block-rss.is-grid li {
4580
4580
  appearance: none;
4581
4581
  -webkit-appearance: none;
4582
4582
  margin: 0;
4583
- padding-block: var(--tab-padding-block, var(--wp--preset--spacing--20, 0.5em));
4584
- padding-inline: var(--tab-padding-inline, var(--wp--preset--spacing--30, 1em));
4583
+ padding: var(--wp--preset--spacing--20, 0.5em) var(--wp--preset--spacing--30, 1em);
4585
4584
  font-size: inherit;
4586
4585
  font-family: inherit;
4587
4586
  font-weight: inherit;
@@ -4590,20 +4589,12 @@ ul.wp-block-rss.is-grid li {
4590
4589
  text-transform: inherit;
4591
4590
  text-align: inherit;
4592
4591
  }
4593
- .wp-block-tabs-menu-item:focus {
4594
- outline: none;
4595
- }
4596
4592
  .wp-block-tabs-menu-item:focus-visible {
4597
- outline: 2px solid var(--tab-border-color-active, #000);
4598
4593
  outline-offset: 2px;
4599
4594
  }
4600
- .wp-block-tabs-menu-item:hover {
4601
- background-color: var(--custom-tab-hover-color, #eaeaea) !important;
4602
- color: var(--custom-tab-hover-text-color, #000) !important;
4603
- }
4604
4595
  .wp-block-tabs-menu-item[aria-selected=true], .wp-block-tabs-menu-item.is-active {
4605
- background-color: var(--custom-tab-active-color, #000) !important;
4606
- color: var(--custom-tab-active-text-color, #fff) !important;
4596
+ background-color: #000;
4597
+ color: #fff;
4607
4598
  }
4608
4599
 
4609
4600
  .wp-block-term-count {
@@ -4613,8 +4613,7 @@ ul.wp-block-rss.is-grid li {
4613
4613
  appearance: none;
4614
4614
  -webkit-appearance: none;
4615
4615
  margin: 0;
4616
- padding-block: var(--tab-padding-block, var(--wp--preset--spacing--20, 0.5em));
4617
- padding-inline: var(--tab-padding-inline, var(--wp--preset--spacing--30, 1em));
4616
+ padding: var(--wp--preset--spacing--20, 0.5em) var(--wp--preset--spacing--30, 1em);
4618
4617
  font-size: inherit;
4619
4618
  font-family: inherit;
4620
4619
  font-weight: inherit;
@@ -4623,20 +4622,12 @@ ul.wp-block-rss.is-grid li {
4623
4622
  text-transform: inherit;
4624
4623
  text-align: inherit;
4625
4624
  }
4626
- .wp-block-tabs-menu-item:focus {
4627
- outline: none;
4628
- }
4629
4625
  .wp-block-tabs-menu-item:focus-visible {
4630
- outline: 2px solid var(--tab-border-color-active, #000);
4631
4626
  outline-offset: 2px;
4632
4627
  }
4633
- .wp-block-tabs-menu-item:hover {
4634
- background-color: var(--custom-tab-hover-color, #eaeaea) !important;
4635
- color: var(--custom-tab-hover-text-color, #000) !important;
4636
- }
4637
4628
  .wp-block-tabs-menu-item[aria-selected=true], .wp-block-tabs-menu-item.is-active {
4638
- background-color: var(--custom-tab-active-color, #000) !important;
4639
- color: var(--custom-tab-active-text-color, #fff) !important;
4629
+ background-color: #000;
4630
+ color: #fff;
4640
4631
  }
4641
4632
 
4642
4633
  .wp-block-term-count {
@@ -1,5 +1,4 @@
1
1
  .wp-block-tabs-menu-item.is-selected {
2
- outline: 2px solid var(--wp-admin-theme-color, #007cba);
3
2
  outline-offset: 2px;
4
3
  }
5
4
 
@@ -9,8 +8,4 @@
9
8
  }
10
9
  .block-editor-block-preview__live-content:has(.wp-block-tabs-menu-item) .wp-block-tabs-menu-item {
11
10
  flex-basis: 100% !important;
12
- }
13
- .block-editor-block-preview__live-content:has(.wp-block-tabs-menu-item):hover > .wp-block-tabs-menu-item {
14
- background-color: var(--custom-tab-hover-color, #eaeaea) !important;
15
- color: var(--custom-tab-hover-text-color, #000) !important;
16
11
  }
@@ -1,5 +1,4 @@
1
1
  .wp-block-tabs-menu-item.is-selected {
2
- outline: 2px solid var(--wp-admin-theme-color, #007cba);
3
2
  outline-offset: 2px;
4
3
  }
5
4
 
@@ -9,8 +8,4 @@
9
8
  }
10
9
  .block-editor-block-preview__live-content:has(.wp-block-tabs-menu-item) .wp-block-tabs-menu-item {
11
10
  flex-basis: 100% !important;
12
- }
13
- .block-editor-block-preview__live-content:has(.wp-block-tabs-menu-item):hover > .wp-block-tabs-menu-item {
14
- background-color: var(--custom-tab-hover-color, #eaeaea) !important;
15
- color: var(--custom-tab-hover-text-color, #000) !important;
16
11
  }
@@ -12,8 +12,7 @@
12
12
  appearance: none;
13
13
  -webkit-appearance: none;
14
14
  margin: 0;
15
- padding-block: var(--tab-padding-block, var(--wp--preset--spacing--20, 0.5em));
16
- padding-inline: var(--tab-padding-inline, var(--wp--preset--spacing--30, 1em));
15
+ padding: var(--wp--preset--spacing--20, 0.5em) var(--wp--preset--spacing--30, 1em);
17
16
  font-size: inherit;
18
17
  font-family: inherit;
19
18
  font-weight: inherit;
@@ -22,18 +21,10 @@
22
21
  text-transform: inherit;
23
22
  text-align: inherit;
24
23
  }
25
- .wp-block-tabs-menu-item:focus {
26
- outline: none;
27
- }
28
24
  .wp-block-tabs-menu-item:focus-visible {
29
- outline: 2px solid var(--tab-border-color-active, #000);
30
25
  outline-offset: 2px;
31
26
  }
32
- .wp-block-tabs-menu-item:hover {
33
- background-color: var(--custom-tab-hover-color, #eaeaea) !important;
34
- color: var(--custom-tab-hover-text-color, #000) !important;
35
- }
36
27
  .wp-block-tabs-menu-item[aria-selected=true], .wp-block-tabs-menu-item.is-active {
37
- background-color: var(--custom-tab-active-color, #000) !important;
38
- color: var(--custom-tab-active-text-color, #fff) !important;
28
+ background-color: #000;
29
+ color: #fff;
39
30
  }
@@ -12,8 +12,7 @@
12
12
  appearance: none;
13
13
  -webkit-appearance: none;
14
14
  margin: 0;
15
- padding-block: var(--tab-padding-block, var(--wp--preset--spacing--20, 0.5em));
16
- padding-inline: var(--tab-padding-inline, var(--wp--preset--spacing--30, 1em));
15
+ padding: var(--wp--preset--spacing--20, 0.5em) var(--wp--preset--spacing--30, 1em);
17
16
  font-size: inherit;
18
17
  font-family: inherit;
19
18
  font-weight: inherit;
@@ -22,18 +21,10 @@
22
21
  text-transform: inherit;
23
22
  text-align: inherit;
24
23
  }
25
- .wp-block-tabs-menu-item:focus {
26
- outline: none;
27
- }
28
24
  .wp-block-tabs-menu-item:focus-visible {
29
- outline: 2px solid var(--tab-border-color-active, #000);
30
25
  outline-offset: 2px;
31
26
  }
32
- .wp-block-tabs-menu-item:hover {
33
- background-color: var(--custom-tab-hover-color, #eaeaea) !important;
34
- color: var(--custom-tab-hover-text-color, #000) !important;
35
- }
36
27
  .wp-block-tabs-menu-item[aria-selected=true], .wp-block-tabs-menu-item.is-active {
37
- background-color: var(--custom-tab-active-color, #000) !important;
38
- color: var(--custom-tab-active-text-color, #fff) !important;
28
+ background-color: #000;
29
+ color: #fff;
39
30
  }