@wordpress/block-library 9.38.1-next.v.0 → 9.39.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.
- package/CHANGELOG.md +2 -0
- package/build/button/index.cjs +3 -0
- package/build/button/index.cjs.map +2 -2
- package/build/comments-title/block.json +1 -3
- package/build/comments-title/deprecated.cjs +148 -24
- package/build/comments-title/deprecated.cjs.map +3 -3
- package/build/comments-title/edit.cjs +17 -31
- package/build/comments-title/edit.cjs.map +3 -3
- package/build/cover/edit/block-controls.cjs +10 -2
- package/build/cover/edit/block-controls.cjs.map +2 -2
- package/build/cover/edit/embed-video-url-input.cjs +6 -2
- package/build/cover/edit/embed-video-url-input.cjs.map +2 -2
- package/build/details/index.cjs +3 -0
- package/build/details/index.cjs.map +2 -2
- package/build/heading/index.cjs +3 -0
- package/build/heading/index.cjs.map +2 -2
- package/build/image/index.cjs +1 -1
- package/build/image/index.cjs.map +2 -2
- package/build/index.cjs +6 -0
- package/build/index.cjs.map +2 -2
- package/build/list-item/index.cjs +3 -0
- package/build/list-item/index.cjs.map +2 -2
- package/build/more/index.cjs +1 -1
- package/build/more/index.cjs.map +2 -2
- package/build/navigation/edit/index.cjs +23 -2
- package/build/navigation/edit/index.cjs.map +2 -2
- package/build/navigation-submenu/index.cjs +2 -2
- package/build/navigation-submenu/index.cjs.map +2 -2
- package/build/paragraph/index.cjs +1 -1
- package/build/paragraph/index.cjs.map +2 -2
- package/build/post-excerpt/edit.cjs +1 -1
- package/build/post-excerpt/edit.cjs.map +2 -2
- package/build/tab/add-tab-toolbar-control.cjs +31 -9
- package/build/tab/add-tab-toolbar-control.cjs.map +2 -2
- package/build/tab/block.json +18 -4
- package/build/tab/controls.cjs +4 -8
- package/build/tab/controls.cjs.map +3 -3
- package/build/tab/edit.cjs +46 -118
- package/build/tab/edit.cjs.map +3 -3
- package/build/tab/remove-tab-toolbar-control.cjs +91 -0
- package/build/tab/remove-tab-toolbar-control.cjs.map +7 -0
- package/build/tab/save.cjs +2 -2
- package/build/tab/save.cjs.map +2 -2
- package/build/tab-panels/block.json +70 -0
- package/build/tab-panels/edit.cjs +63 -0
- package/build/tab-panels/edit.cjs.map +7 -0
- package/build/tab-panels/icon.cjs +29 -0
- package/build/tab-panels/icon.cjs.map +7 -0
- package/build/tab-panels/index.cjs +58 -0
- package/build/tab-panels/index.cjs.map +7 -0
- package/build/tab-panels/save.cjs +33 -0
- package/build/tab-panels/save.cjs.map +7 -0
- package/build/tabs/block.json +61 -90
- package/build/tabs/controls.cjs +19 -221
- package/build/tabs/controls.cjs.map +3 -3
- package/build/tabs/deprecated.cjs +179 -0
- package/build/tabs/deprecated.cjs.map +7 -0
- package/build/tabs/edit.cjs +84 -62
- package/build/tabs/edit.cjs.map +3 -3
- package/build/tabs/index.cjs +3 -1
- package/build/tabs/index.cjs.map +3 -3
- package/build/tabs/save.cjs +6 -9
- package/build/tabs/save.cjs.map +2 -2
- package/build/tabs-menu/block.json +77 -0
- package/build/tabs-menu/edit.cjs +204 -0
- package/build/tabs-menu/edit.cjs.map +7 -0
- package/build/tabs-menu/icon.cjs +29 -0
- package/build/tabs-menu/icon.cjs.map +7 -0
- package/build/tabs-menu/index.cjs +58 -0
- package/build/tabs-menu/index.cjs.map +7 -0
- package/build/tabs-menu/save.cjs +35 -0
- package/build/tabs-menu/save.cjs.map +7 -0
- package/build/tabs-menu-item/block.json +98 -0
- package/build/tabs-menu-item/controls.cjs +247 -0
- package/build/tabs-menu-item/controls.cjs.map +7 -0
- package/build/tabs-menu-item/edit.cjs +272 -0
- package/build/tabs-menu-item/edit.cjs.map +7 -0
- package/build/tabs-menu-item/icon.cjs +29 -0
- package/build/tabs-menu-item/icon.cjs.map +7 -0
- package/build/tabs-menu-item/index.cjs +58 -0
- package/build/tabs-menu-item/index.cjs.map +7 -0
- package/build/tabs-menu-item/save.cjs +50 -0
- package/build/tabs-menu-item/save.cjs.map +7 -0
- package/build/template-part/edit/index.cjs +1 -1
- package/build/template-part/edit/index.cjs.map +2 -2
- package/build/utils/caption.cjs +4 -6
- package/build/utils/caption.cjs.map +3 -3
- package/build/video/edit.cjs +4 -2
- package/build/video/edit.cjs.map +2 -2
- package/build-module/button/index.mjs +3 -0
- package/build-module/button/index.mjs.map +2 -2
- package/build-module/comments-title/block.json +1 -3
- package/build-module/comments-title/deprecated.mjs +148 -24
- package/build-module/comments-title/deprecated.mjs.map +2 -2
- package/build-module/comments-title/edit.mjs +17 -32
- package/build-module/comments-title/edit.mjs.map +2 -2
- package/build-module/cover/edit/block-controls.mjs +11 -3
- package/build-module/cover/edit/block-controls.mjs.map +2 -2
- package/build-module/cover/edit/embed-video-url-input.mjs +6 -2
- package/build-module/cover/edit/embed-video-url-input.mjs.map +2 -2
- package/build-module/details/index.mjs +3 -0
- package/build-module/details/index.mjs.map +2 -2
- package/build-module/heading/index.mjs +3 -0
- package/build-module/heading/index.mjs.map +2 -2
- package/build-module/image/index.mjs +1 -1
- package/build-module/image/index.mjs.map +2 -2
- package/build-module/index.mjs +6 -0
- package/build-module/index.mjs.map +2 -2
- package/build-module/list-item/index.mjs +3 -0
- package/build-module/list-item/index.mjs.map +2 -2
- package/build-module/more/index.mjs +1 -1
- package/build-module/more/index.mjs.map +2 -2
- package/build-module/navigation/edit/index.mjs +23 -2
- package/build-module/navigation/edit/index.mjs.map +2 -2
- package/build-module/navigation-submenu/index.mjs +2 -2
- package/build-module/navigation-submenu/index.mjs.map +2 -2
- package/build-module/paragraph/index.mjs +1 -1
- package/build-module/paragraph/index.mjs.map +2 -2
- package/build-module/post-excerpt/edit.mjs +1 -1
- package/build-module/post-excerpt/edit.mjs.map +2 -2
- package/build-module/tab/add-tab-toolbar-control.mjs +32 -10
- package/build-module/tab/add-tab-toolbar-control.mjs.map +2 -2
- package/build-module/tab/block.json +18 -4
- package/build-module/tab/controls.mjs +4 -8
- package/build-module/tab/controls.mjs.map +2 -2
- package/build-module/tab/edit.mjs +48 -128
- package/build-module/tab/edit.mjs.map +2 -2
- package/build-module/tab/remove-tab-toolbar-control.mjs +73 -0
- package/build-module/tab/remove-tab-toolbar-control.mjs.map +7 -0
- package/build-module/tab/save.mjs +2 -2
- package/build-module/tab/save.mjs.map +2 -2
- package/build-module/tab-panels/block.json +70 -0
- package/build-module/tab-panels/edit.mjs +36 -0
- package/build-module/tab-panels/edit.mjs.map +7 -0
- package/build-module/tab-panels/icon.mjs +8 -0
- package/build-module/tab-panels/icon.mjs.map +7 -0
- package/build-module/tab-panels/index.mjs +20 -0
- package/build-module/tab-panels/index.mjs.map +7 -0
- package/build-module/tab-panels/save.mjs +12 -0
- package/build-module/tab-panels/save.mjs.map +7 -0
- package/build-module/tabs/block.json +61 -90
- package/build-module/tabs/controls.mjs +21 -228
- package/build-module/tabs/controls.mjs.map +2 -2
- package/build-module/tabs/deprecated.mjs +158 -0
- package/build-module/tabs/deprecated.mjs.map +7 -0
- package/build-module/tabs/edit.mjs +87 -64
- package/build-module/tabs/edit.mjs.map +2 -2
- package/build-module/tabs/index.mjs +3 -1
- package/build-module/tabs/index.mjs.map +2 -2
- package/build-module/tabs/save.mjs +7 -10
- package/build-module/tabs/save.mjs.map +2 -2
- package/build-module/tabs-menu/block.json +77 -0
- package/build-module/tabs-menu/edit.mjs +186 -0
- package/build-module/tabs-menu/edit.mjs.map +7 -0
- package/build-module/tabs-menu/icon.mjs +8 -0
- package/build-module/tabs-menu/icon.mjs.map +7 -0
- package/build-module/tabs-menu/index.mjs +20 -0
- package/build-module/tabs-menu/index.mjs.map +7 -0
- package/build-module/tabs-menu/save.mjs +14 -0
- package/build-module/tabs-menu/save.mjs.map +7 -0
- package/build-module/tabs-menu-item/block.json +98 -0
- package/build-module/tabs-menu-item/controls.mjs +227 -0
- package/build-module/tabs-menu-item/controls.mjs.map +7 -0
- package/build-module/tabs-menu-item/edit.mjs +253 -0
- package/build-module/tabs-menu-item/edit.mjs.map +7 -0
- package/build-module/tabs-menu-item/icon.mjs +8 -0
- package/build-module/tabs-menu-item/icon.mjs.map +7 -0
- package/build-module/tabs-menu-item/index.mjs +20 -0
- package/build-module/tabs-menu-item/index.mjs.map +7 -0
- package/build-module/tabs-menu-item/save.mjs +29 -0
- package/build-module/tabs-menu-item/save.mjs.map +7 -0
- package/build-module/template-part/edit/index.mjs +1 -1
- package/build-module/template-part/edit/index.mjs.map +2 -2
- package/build-module/utils/caption.mjs +1 -3
- package/build-module/utils/caption.mjs.map +2 -2
- package/build-module/video/edit.mjs +4 -2
- package/build-module/video/edit.mjs.map +2 -2
- package/build-style/editor-rtl.css +16 -21
- package/build-style/editor.css +16 -21
- package/build-style/gallery/style-rtl.css +1 -1
- package/build-style/gallery/style.css +1 -1
- package/build-style/style-rtl.css +42 -153
- package/build-style/style.css +42 -153
- package/build-style/tab/style-rtl.css +7 -1
- package/build-style/tab/style.css +7 -1
- package/build-style/tab-panels/style-rtl.css +4 -0
- package/build-style/tab-panels/style.css +4 -0
- package/build-style/tabs/style-rtl.css +1 -167
- package/build-style/tabs/style.css +1 -167
- package/build-style/tabs-menu/editor-rtl.css +4 -0
- package/build-style/tabs-menu/editor.css +4 -0
- package/build-style/tabs-menu/style-rtl.css +8 -0
- package/build-style/tabs-menu/style.css +8 -0
- package/build-style/tabs-menu-item/editor-rtl.css +16 -0
- package/build-style/tabs-menu-item/editor.css +16 -0
- package/build-style/tabs-menu-item/style-rtl.css +34 -0
- package/build-style/tabs-menu-item/style.css +34 -0
- package/package.json +37 -37
- package/src/button/index.js +4 -0
- package/src/comments-title/block.json +1 -3
- package/src/comments-title/deprecated.js +153 -23
- package/src/comments-title/edit.js +9 -25
- package/src/cover/edit/block-controls.js +14 -3
- package/src/cover/edit/embed-video-url-input.js +6 -2
- package/src/details/index.js +4 -0
- package/src/editor.scss +2 -1
- package/src/gallery/style.scss +1 -1
- package/src/heading/index.js +4 -0
- package/src/image/index.js +4 -1
- package/src/index.js +6 -0
- package/src/list-item/index.js +4 -0
- package/src/more/index.js +4 -1
- package/src/navigation/edit/index.js +28 -4
- package/src/navigation-submenu/index.js +6 -3
- package/src/paragraph/index.js +4 -1
- package/src/post-excerpt/edit.js +1 -1
- package/src/post-excerpt/index.php +39 -16
- package/src/style.scss +3 -0
- package/src/tab/add-tab-toolbar-control.js +36 -11
- package/src/tab/block.json +18 -4
- package/src/tab/controls.js +4 -5
- package/src/tab/edit.js +75 -150
- package/src/tab/index.php +5 -63
- package/src/tab/remove-tab-toolbar-control.js +103 -0
- package/src/tab/save.js +1 -3
- package/src/tab/style.scss +8 -1
- package/src/tab-panels/block.json +70 -0
- package/src/tab-panels/edit.js +44 -0
- package/src/tab-panels/icon.js +10 -0
- package/src/tab-panels/index.js +21 -0
- package/src/tab-panels/save.js +11 -0
- package/src/tab-panels/style.scss +4 -0
- package/src/tabs/block.json +61 -90
- package/src/tabs/controls.js +7 -221
- package/src/tabs/deprecated.js +214 -0
- package/src/tabs/edit.js +108 -68
- package/src/tabs/index.js +2 -0
- package/src/tabs/index.php +86 -191
- package/src/tabs/save.js +6 -13
- package/src/tabs/style.scss +1 -187
- package/src/tabs-menu/block.json +77 -0
- package/src/tabs-menu/edit.js +251 -0
- package/src/tabs-menu/editor.scss +6 -0
- package/src/tabs-menu/icon.js +10 -0
- package/src/tabs-menu/index.js +21 -0
- package/src/tabs-menu/index.php +74 -0
- package/src/tabs-menu/save.js +18 -0
- package/src/tabs-menu/style.scss +8 -0
- package/src/tabs-menu-item/block.json +98 -0
- package/src/tabs-menu-item/controls.js +262 -0
- package/src/tabs-menu-item/edit.js +322 -0
- package/src/tabs-menu-item/editor.scss +20 -0
- package/src/tabs-menu-item/icon.js +10 -0
- package/src/tabs-menu-item/index.js +21 -0
- package/src/tabs-menu-item/index.php +82 -0
- package/src/tabs-menu-item/save.js +44 -0
- package/src/tabs-menu-item/style.scss +42 -0
- package/src/template-part/edit/index.js +1 -3
- package/src/utils/caption.js +1 -7
- package/src/video/edit.js +4 -2
- package/build/tab/tabs-list.cjs +0 -132
- package/build/tab/tabs-list.cjs.map +0 -7
- package/build/tabs/style-engine.cjs +0 -119
- package/build/tabs/style-engine.cjs.map +0 -7
- package/build-module/tab/tabs-list.mjs +0 -101
- package/build-module/tab/tabs-list.mjs.map +0 -7
- package/build-module/tabs/style-engine.mjs +0 -101
- package/build-module/tabs/style-engine.mjs.map +0 -7
- package/build-style/tabs/editor-rtl.css +0 -26
- package/build-style/tabs/editor.css +0 -26
- package/src/tab/tabs-list.js +0 -122
- package/src/tabs/editor.scss +0 -30
- package/src/tabs/style-engine.js +0 -164
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/tabs/style-engine.js"],
|
|
4
|
-
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalGetGapCSSValue as getGapCSSValue,\n\tuseStyleOverride,\n} from '@wordpress/block-editor';\n\n/**\n * Gets the gap styles for the tab block.\n * @param {Object} props\n * @param {Object} props.attributes Block attributes\n * @return {Object} CSS custom properties for gap styles\n */\nfunction getGapStyles( { attributes } ) {\n\tconst { style, orientation } = attributes || {};\n\tconst { spacing } = style || {};\n\tconst { blockGap } = spacing || {};\n\t//--wp--style--tabs-list-gap-default should be used by themes that want to set a default\n\t// gap on the tabs list.\n\tconst fallbackValue = `var( --wp--style--tabs-gap-default, var( --wp--style--block-gap, 0.5em ) )`;\n\tlet listGapValue = fallbackValue;\n\tlet gapValue = fallbackValue;\n\n\t// Check for a value.\n\tif ( !! blockGap ) {\n\t\tlistGapValue =\n\t\t\ttypeof blockGap === 'string'\n\t\t\t\t? getGapCSSValue( blockGap )\n\t\t\t\t: getGapCSSValue( blockGap?.left ) || fallbackValue;\n\t\tgapValue =\n\t\t\ttypeof blockGap === 'string'\n\t\t\t\t? getGapCSSValue( blockGap )\n\t\t\t\t: getGapCSSValue( blockGap?.top ) || fallbackValue;\n\t}\n\n\tif ( orientation === 'vertical' ) {\n\t\tconst _listGapValue = listGapValue;\n\t\tconst _gapValue = gapValue;\n\t\tlistGapValue = _gapValue;\n\t\tgapValue = _listGapValue;\n\t}\n\n\t// The unstable tabs list gap calculation requires a real value (such as `0px`) and not `0`.\n\tconst gapMap = {\n\t\t'--wp--style--unstable-tabs-list-gap':\n\t\t\tlistGapValue === '0' ? '0px' : listGapValue,\n\t\t'--wp--style--unstable-tabs-gap': gapValue,\n\t};\n\n\treturn gapMap;\n}\n\n/**\n * Gets the color styles for the tab block.\n *\n * @param {Object} props\n * @param {Object} props.attributes Block attributes\n * @return {Object} CSS custom properties for color styles\n */\nfunction getColorStyles( { attributes } ) {\n\tconst {\n\t\tcustomTabInactiveColor,\n\t\tcustomTabHoverColor,\n\t\tcustomTabActiveColor,\n\t\tcustomTabTextColor,\n\t\tcustomTabActiveTextColor,\n\t\tcustomTabHoverTextColor,\n\t} = attributes || {};\n\n\t// Helper to normalize color objects (preset { slug } vs direct value).\n\tfunction getColorValue( color ) {\n\t\tif ( ! color ) {\n\t\t\treturn null;\n\t\t}\n\t\tif ( typeof color === 'object' && color.slug ) {\n\t\t\treturn `var(--wp--preset--color--${ color.slug })`;\n\t\t}\n\t\treturn color;\n\t}\n\n\tconst colorVarMap = {\n\t\t'--custom-tab-inactive-color': getColorValue( customTabInactiveColor ),\n\t\t'--custom-tab-active-color': getColorValue( customTabActiveColor ),\n\t\t'--custom-tab-hover-color': getColorValue( customTabHoverColor ),\n\t\t'--custom-tab-text-color': getColorValue( customTabTextColor ),\n\t\t'--custom-tab-active-text-color': getColorValue(\n\t\t\tcustomTabActiveTextColor\n\t\t),\n\t\t'--custom-tab-hover-text-color': getColorValue(\n\t\t\tcustomTabHoverTextColor\n\t\t),\n\t};\n\n\treturn colorVarMap;\n}\n\n/**\n * Gets the border styles for the tab block.\n *\n * @param {Object} props\n * @param {Object} props.attributes Block attributes\n * @return {Object} CSS custom properties for border styles\n */\nfunction getBorderStyles( { attributes } ) {\n\tconst { radius } = attributes?.style?.border || {};\n\n\tif ( ! radius ) {\n\t\treturn {};\n\t}\n\n\tlet radiusValue = radius;\n\n\tif ( typeof radius === 'object' ) {\n\t\tconst {\n\t\t\ttopLeft = '0',\n\t\t\ttopRight = '0',\n\t\t\tbottomRight = '0',\n\t\t\tbottomLeft = '0',\n\t\t} = radius;\n\t\tradiusValue = `${ topLeft } ${ topRight } ${ bottomRight } ${ bottomLeft }`;\n\t}\n\n\tconst borderMap = {\n\t\t'--tab-border-radius': radiusValue,\n\t};\n\n\treturn borderMap;\n}\n\n/**\n * Injects color CSS custom properties for the tabs block, mirroring the pattern\n * used by gap-styles (scoped to `#block-{ clientId }`). This replaces the prior\n * inline-style object return value approach so that these values participate in\n * style engine cascade like other dynamic style overrides.\n *\n * @param {Object} props\n * @param {Object} props.attributes Block attributes\n * @param {string} props.clientId Block client ID\n * @return {null} No UI output\n */\nexport default function StyleEngine( { attributes, clientId } ) {\n\tconst gapVarMap = getGapStyles( { attributes } );\n\tconst colorVarMap = getColorStyles( { attributes } );\n\tconst borderVarMap = getBorderStyles( { attributes } );\n\n\tconst styleVarMap = {\n\t\t...gapVarMap,\n\t\t...colorVarMap,\n\t\t...borderVarMap,\n\t};\n\n\t// Build scoped CSS only for defined values to avoid unnecessary empty declarations.\n\tconst declarations = Object.entries( styleVarMap )\n\t\t.filter( ( [ , value ] ) => !! value )\n\t\t.map( ( [ name, value ] ) => `\\t${ name }: ${ value };` )\n\t\t.join( '\\n' );\n\n\tuseStyleOverride( {\n\t\tcss: clientId ? `#block-${ clientId } {\\n${ declarations }\\n}` : '',\n\t} );\n\n\treturn null;\n}\n"],
|
|
5
|
-
"mappings": ";AAGA;AAAA,EACC,gCAAgC;AAAA,EAChC;AAAA,OACM;AAQP,SAAS,aAAc,EAAE,WAAW,GAAI;AACvC,QAAM,EAAE,OAAO,YAAY,IAAI,cAAc,CAAC;AAC9C,QAAM,EAAE,QAAQ,IAAI,SAAS,CAAC;AAC9B,QAAM,EAAE,SAAS,IAAI,WAAW,CAAC;AAGjC,QAAM,gBAAgB;AACtB,MAAI,eAAe;AACnB,MAAI,WAAW;AAGf,MAAK,CAAC,CAAE,UAAW;AAClB,mBACC,OAAO,aAAa,WACjB,eAAgB,QAAS,IACzB,eAAgB,UAAU,IAAK,KAAK;AACxC,eACC,OAAO,aAAa,WACjB,eAAgB,QAAS,IACzB,eAAgB,UAAU,GAAI,KAAK;AAAA,EACxC;AAEA,MAAK,gBAAgB,YAAa;AACjC,UAAM,gBAAgB;AACtB,UAAM,YAAY;AAClB,mBAAe;AACf,eAAW;AAAA,EACZ;AAGA,QAAM,SAAS;AAAA,IACd,uCACC,iBAAiB,MAAM,QAAQ;AAAA,IAChC,kCAAkC;AAAA,EACnC;AAEA,SAAO;AACR;AASA,SAAS,eAAgB,EAAE,WAAW,GAAI;AACzC,QAAM;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,IAAI,cAAc,CAAC;AAGnB,WAAS,cAAe,OAAQ;AAC/B,QAAK,CAAE,OAAQ;AACd,aAAO;AAAA,IACR;AACA,QAAK,OAAO,UAAU,YAAY,MAAM,MAAO;AAC9C,aAAO,4BAA6B,MAAM,IAAK;AAAA,IAChD;AACA,WAAO;AAAA,EACR;AAEA,QAAM,cAAc;AAAA,IACnB,+BAA+B,cAAe,sBAAuB;AAAA,IACrE,6BAA6B,cAAe,oBAAqB;AAAA,IACjE,4BAA4B,cAAe,mBAAoB;AAAA,IAC/D,2BAA2B,cAAe,kBAAmB;AAAA,IAC7D,kCAAkC;AAAA,MACjC;AAAA,IACD;AAAA,IACA,iCAAiC;AAAA,MAChC;AAAA,IACD;AAAA,EACD;AAEA,SAAO;AACR;AASA,SAAS,gBAAiB,EAAE,WAAW,GAAI;AAC1C,QAAM,EAAE,OAAO,IAAI,YAAY,OAAO,UAAU,CAAC;AAEjD,MAAK,CAAE,QAAS;AACf,WAAO,CAAC;AAAA,EACT;AAEA,MAAI,cAAc;AAElB,MAAK,OAAO,WAAW,UAAW;AACjC,UAAM;AAAA,MACL,UAAU;AAAA,MACV,WAAW;AAAA,MACX,cAAc;AAAA,MACd,aAAa;AAAA,IACd,IAAI;AACJ,kBAAc,GAAI,OAAQ,IAAK,QAAS,IAAK,WAAY,IAAK,UAAW;AAAA,EAC1E;AAEA,QAAM,YAAY;AAAA,IACjB,uBAAuB;AAAA,EACxB;AAEA,SAAO;AACR;AAae,SAAR,YAA8B,EAAE,YAAY,SAAS,GAAI;AAC/D,QAAM,YAAY,aAAc,EAAE,WAAW,CAAE;AAC/C,QAAM,cAAc,eAAgB,EAAE,WAAW,CAAE;AACnD,QAAM,eAAe,gBAAiB,EAAE,WAAW,CAAE;AAErD,QAAM,cAAc;AAAA,IACnB,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,EACJ;AAGA,QAAM,eAAe,OAAO,QAAS,WAAY,EAC/C,OAAQ,CAAE,CAAE,EAAE,KAAM,MAAO,CAAC,CAAE,KAAM,EACpC,IAAK,CAAE,CAAE,MAAM,KAAM,MAAO,IAAM,IAAK,KAAM,KAAM,GAAI,EACvD,KAAM,IAAK;AAEb,mBAAkB;AAAA,IACjB,KAAK,WAAW,UAAW,QAAS;AAAA,EAAQ,YAAa;AAAA,KAAQ;AAAA,EAClE,CAAE;AAEF,SAAO;AACR;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
.wp-block-tabs.wp-block .wp-block-tabs__tab-item__inserter {
|
|
2
|
-
height: 100%;
|
|
3
|
-
display: flex;
|
|
4
|
-
align-items: center;
|
|
5
|
-
}
|
|
6
|
-
.wp-block-tabs.wp-block .wp-block-tab.wp-block {
|
|
7
|
-
display: flex;
|
|
8
|
-
flex-direction: column;
|
|
9
|
-
gap: var(--wp--style--unstable-tabs-gap);
|
|
10
|
-
}
|
|
11
|
-
.wp-block-tabs.wp-block .wp-block-tab.wp-block > section {
|
|
12
|
-
flex-grow: 1;
|
|
13
|
-
}
|
|
14
|
-
.wp-block-tabs.wp-block .wp-block-tab.wp-block > section > .wp-block:first-child {
|
|
15
|
-
margin-top: 0;
|
|
16
|
-
}
|
|
17
|
-
.wp-block-tabs.wp-block .wp-block-tab.wp-block > section > .wp-block:last-child {
|
|
18
|
-
margin-bottom: 0;
|
|
19
|
-
}
|
|
20
|
-
.wp-block-tabs.wp-block.is-vertical > .wp-block-tab.wp-block {
|
|
21
|
-
flex-direction: row;
|
|
22
|
-
}
|
|
23
|
-
.wp-block-tabs.wp-block.is-vertical .wp-block-tabs__tab-item__inserter {
|
|
24
|
-
align-items: flex-start;
|
|
25
|
-
margin-left: -1px;
|
|
26
|
-
}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
.wp-block-tabs.wp-block .wp-block-tabs__tab-item__inserter {
|
|
2
|
-
height: 100%;
|
|
3
|
-
display: flex;
|
|
4
|
-
align-items: center;
|
|
5
|
-
}
|
|
6
|
-
.wp-block-tabs.wp-block .wp-block-tab.wp-block {
|
|
7
|
-
display: flex;
|
|
8
|
-
flex-direction: column;
|
|
9
|
-
gap: var(--wp--style--unstable-tabs-gap);
|
|
10
|
-
}
|
|
11
|
-
.wp-block-tabs.wp-block .wp-block-tab.wp-block > section {
|
|
12
|
-
flex-grow: 1;
|
|
13
|
-
}
|
|
14
|
-
.wp-block-tabs.wp-block .wp-block-tab.wp-block > section > .wp-block:first-child {
|
|
15
|
-
margin-top: 0;
|
|
16
|
-
}
|
|
17
|
-
.wp-block-tabs.wp-block .wp-block-tab.wp-block > section > .wp-block:last-child {
|
|
18
|
-
margin-bottom: 0;
|
|
19
|
-
}
|
|
20
|
-
.wp-block-tabs.wp-block.is-vertical > .wp-block-tab.wp-block {
|
|
21
|
-
flex-direction: row;
|
|
22
|
-
}
|
|
23
|
-
.wp-block-tabs.wp-block.is-vertical .wp-block-tabs__tab-item__inserter {
|
|
24
|
-
align-items: flex-start;
|
|
25
|
-
margin-right: -1px;
|
|
26
|
-
}
|
package/src/tab/tabs-list.js
DELETED
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* External dependencies
|
|
3
|
-
*/
|
|
4
|
-
import clsx from 'clsx';
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* WordPress dependencies
|
|
8
|
-
*/
|
|
9
|
-
import { __, sprintf } from '@wordpress/i18n';
|
|
10
|
-
import { RichText } from '@wordpress/block-editor';
|
|
11
|
-
import { decodeEntities } from '@wordpress/html-entities';
|
|
12
|
-
import { RawHTML } from '@wordpress/element';
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Internal dependencies
|
|
16
|
-
*/
|
|
17
|
-
import slugFromLabel from './slug-from-label';
|
|
18
|
-
|
|
19
|
-
function StaticLabel( { label, index } ) {
|
|
20
|
-
if ( label ) {
|
|
21
|
-
return (
|
|
22
|
-
<span>
|
|
23
|
-
<RawHTML>{ decodeEntities( label ) }</RawHTML>
|
|
24
|
-
</span>
|
|
25
|
-
);
|
|
26
|
-
}
|
|
27
|
-
return (
|
|
28
|
-
<span>
|
|
29
|
-
{ sprintf(
|
|
30
|
-
/* translators: %d is the tab index + 1 */
|
|
31
|
-
__( 'Tab %d' ),
|
|
32
|
-
index + 1
|
|
33
|
-
) }
|
|
34
|
-
</span>
|
|
35
|
-
);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
export default function TabsList( {
|
|
39
|
-
siblingTabs,
|
|
40
|
-
currentClientId,
|
|
41
|
-
currentBlockIndex,
|
|
42
|
-
currentLabel,
|
|
43
|
-
tabItemColorProps,
|
|
44
|
-
onSelectTab,
|
|
45
|
-
onLabelChange,
|
|
46
|
-
labelRef,
|
|
47
|
-
focusRef,
|
|
48
|
-
labelElementRef,
|
|
49
|
-
} ) {
|
|
50
|
-
return (
|
|
51
|
-
<div role="tablist" className="tabs__list">
|
|
52
|
-
{ siblingTabs.map( ( tab, index ) => {
|
|
53
|
-
const isCurrentTab = tab.clientId === currentClientId;
|
|
54
|
-
const isSiblingTabActive = index === currentBlockIndex;
|
|
55
|
-
const tabAttributes = tab.attributes || {};
|
|
56
|
-
const siblingLabel = tabAttributes.label || '';
|
|
57
|
-
const siblingAnchor =
|
|
58
|
-
tabAttributes.anchor ||
|
|
59
|
-
slugFromLabel( siblingLabel, index );
|
|
60
|
-
const siblingTabPanelId = siblingAnchor;
|
|
61
|
-
const siblingTabLabelId = `${ siblingTabPanelId }--tab`;
|
|
62
|
-
|
|
63
|
-
return (
|
|
64
|
-
<button
|
|
65
|
-
key={ tab.clientId }
|
|
66
|
-
aria-controls={ siblingTabPanelId }
|
|
67
|
-
aria-selected={ isSiblingTabActive }
|
|
68
|
-
id={ siblingTabLabelId }
|
|
69
|
-
role="tab"
|
|
70
|
-
className={ clsx(
|
|
71
|
-
'tabs__tab-label',
|
|
72
|
-
tabItemColorProps.className
|
|
73
|
-
) }
|
|
74
|
-
style={ {
|
|
75
|
-
...tabItemColorProps.style,
|
|
76
|
-
} }
|
|
77
|
-
tabIndex={ isSiblingTabActive ? 0 : -1 }
|
|
78
|
-
onClick={ ( event ) => {
|
|
79
|
-
event.preventDefault();
|
|
80
|
-
onSelectTab( tab.clientId );
|
|
81
|
-
} }
|
|
82
|
-
onKeyDown={ ( event ) => {
|
|
83
|
-
// If shift is also pressed, do not select the block.
|
|
84
|
-
if ( event.key === 'Enter' && ! event.shiftKey ) {
|
|
85
|
-
event.preventDefault();
|
|
86
|
-
onSelectTab( tab.clientId );
|
|
87
|
-
if ( isCurrentTab ) {
|
|
88
|
-
const { requestAnimationFrame } = window;
|
|
89
|
-
focusRef.current = requestAnimationFrame(
|
|
90
|
-
() => {
|
|
91
|
-
labelElementRef.current?.focus();
|
|
92
|
-
}
|
|
93
|
-
);
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
} }
|
|
97
|
-
>
|
|
98
|
-
{ isCurrentTab ? (
|
|
99
|
-
<RichText
|
|
100
|
-
ref={ labelRef }
|
|
101
|
-
tagName="span"
|
|
102
|
-
withoutInteractiveFormatting
|
|
103
|
-
placeholder={ sprintf(
|
|
104
|
-
/* translators: %d is the tab index + 1 */
|
|
105
|
-
__( 'Tab %d…' ),
|
|
106
|
-
currentBlockIndex + 1
|
|
107
|
-
) }
|
|
108
|
-
value={ decodeEntities( currentLabel ) }
|
|
109
|
-
onChange={ onLabelChange }
|
|
110
|
-
/>
|
|
111
|
-
) : (
|
|
112
|
-
<StaticLabel
|
|
113
|
-
label={ siblingLabel }
|
|
114
|
-
index={ index }
|
|
115
|
-
/>
|
|
116
|
-
) }
|
|
117
|
-
</button>
|
|
118
|
-
);
|
|
119
|
-
} ) }
|
|
120
|
-
</div>
|
|
121
|
-
);
|
|
122
|
-
}
|
package/src/tabs/editor.scss
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
.wp-block-tabs.wp-block {
|
|
2
|
-
.wp-block-tabs__tab-item__inserter {
|
|
3
|
-
height: 100%;
|
|
4
|
-
display: flex;
|
|
5
|
-
align-items: center;
|
|
6
|
-
}
|
|
7
|
-
.wp-block-tab.wp-block {
|
|
8
|
-
display: flex;
|
|
9
|
-
flex-direction: column;
|
|
10
|
-
gap: var(--wp--style--unstable-tabs-gap);
|
|
11
|
-
& > section {
|
|
12
|
-
flex-grow: 1;
|
|
13
|
-
& > .wp-block:first-child {
|
|
14
|
-
margin-top: 0;
|
|
15
|
-
}
|
|
16
|
-
& > .wp-block:last-child {
|
|
17
|
-
margin-bottom: 0;
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
&.is-vertical {
|
|
22
|
-
& > .wp-block-tab.wp-block {
|
|
23
|
-
flex-direction: row;
|
|
24
|
-
}
|
|
25
|
-
.wp-block-tabs__tab-item__inserter {
|
|
26
|
-
align-items: flex-start;
|
|
27
|
-
margin-right: -1px; // Hack to get the inserter to align with the tab border
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
}
|
package/src/tabs/style-engine.js
DELETED
|
@@ -1,164 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* WordPress dependencies
|
|
3
|
-
*/
|
|
4
|
-
import {
|
|
5
|
-
__experimentalGetGapCSSValue as getGapCSSValue,
|
|
6
|
-
useStyleOverride,
|
|
7
|
-
} from '@wordpress/block-editor';
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Gets the gap styles for the tab block.
|
|
11
|
-
* @param {Object} props
|
|
12
|
-
* @param {Object} props.attributes Block attributes
|
|
13
|
-
* @return {Object} CSS custom properties for gap styles
|
|
14
|
-
*/
|
|
15
|
-
function getGapStyles( { attributes } ) {
|
|
16
|
-
const { style, orientation } = attributes || {};
|
|
17
|
-
const { spacing } = style || {};
|
|
18
|
-
const { blockGap } = spacing || {};
|
|
19
|
-
//--wp--style--tabs-list-gap-default should be used by themes that want to set a default
|
|
20
|
-
// gap on the tabs list.
|
|
21
|
-
const fallbackValue = `var( --wp--style--tabs-gap-default, var( --wp--style--block-gap, 0.5em ) )`;
|
|
22
|
-
let listGapValue = fallbackValue;
|
|
23
|
-
let gapValue = fallbackValue;
|
|
24
|
-
|
|
25
|
-
// Check for a value.
|
|
26
|
-
if ( !! blockGap ) {
|
|
27
|
-
listGapValue =
|
|
28
|
-
typeof blockGap === 'string'
|
|
29
|
-
? getGapCSSValue( blockGap )
|
|
30
|
-
: getGapCSSValue( blockGap?.left ) || fallbackValue;
|
|
31
|
-
gapValue =
|
|
32
|
-
typeof blockGap === 'string'
|
|
33
|
-
? getGapCSSValue( blockGap )
|
|
34
|
-
: getGapCSSValue( blockGap?.top ) || fallbackValue;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
if ( orientation === 'vertical' ) {
|
|
38
|
-
const _listGapValue = listGapValue;
|
|
39
|
-
const _gapValue = gapValue;
|
|
40
|
-
listGapValue = _gapValue;
|
|
41
|
-
gapValue = _listGapValue;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
// The unstable tabs list gap calculation requires a real value (such as `0px`) and not `0`.
|
|
45
|
-
const gapMap = {
|
|
46
|
-
'--wp--style--unstable-tabs-list-gap':
|
|
47
|
-
listGapValue === '0' ? '0px' : listGapValue,
|
|
48
|
-
'--wp--style--unstable-tabs-gap': gapValue,
|
|
49
|
-
};
|
|
50
|
-
|
|
51
|
-
return gapMap;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* Gets the color styles for the tab block.
|
|
56
|
-
*
|
|
57
|
-
* @param {Object} props
|
|
58
|
-
* @param {Object} props.attributes Block attributes
|
|
59
|
-
* @return {Object} CSS custom properties for color styles
|
|
60
|
-
*/
|
|
61
|
-
function getColorStyles( { attributes } ) {
|
|
62
|
-
const {
|
|
63
|
-
customTabInactiveColor,
|
|
64
|
-
customTabHoverColor,
|
|
65
|
-
customTabActiveColor,
|
|
66
|
-
customTabTextColor,
|
|
67
|
-
customTabActiveTextColor,
|
|
68
|
-
customTabHoverTextColor,
|
|
69
|
-
} = attributes || {};
|
|
70
|
-
|
|
71
|
-
// Helper to normalize color objects (preset { slug } vs direct value).
|
|
72
|
-
function getColorValue( color ) {
|
|
73
|
-
if ( ! color ) {
|
|
74
|
-
return null;
|
|
75
|
-
}
|
|
76
|
-
if ( typeof color === 'object' && color.slug ) {
|
|
77
|
-
return `var(--wp--preset--color--${ color.slug })`;
|
|
78
|
-
}
|
|
79
|
-
return color;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
const colorVarMap = {
|
|
83
|
-
'--custom-tab-inactive-color': getColorValue( customTabInactiveColor ),
|
|
84
|
-
'--custom-tab-active-color': getColorValue( customTabActiveColor ),
|
|
85
|
-
'--custom-tab-hover-color': getColorValue( customTabHoverColor ),
|
|
86
|
-
'--custom-tab-text-color': getColorValue( customTabTextColor ),
|
|
87
|
-
'--custom-tab-active-text-color': getColorValue(
|
|
88
|
-
customTabActiveTextColor
|
|
89
|
-
),
|
|
90
|
-
'--custom-tab-hover-text-color': getColorValue(
|
|
91
|
-
customTabHoverTextColor
|
|
92
|
-
),
|
|
93
|
-
};
|
|
94
|
-
|
|
95
|
-
return colorVarMap;
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
/**
|
|
99
|
-
* Gets the border styles for the tab block.
|
|
100
|
-
*
|
|
101
|
-
* @param {Object} props
|
|
102
|
-
* @param {Object} props.attributes Block attributes
|
|
103
|
-
* @return {Object} CSS custom properties for border styles
|
|
104
|
-
*/
|
|
105
|
-
function getBorderStyles( { attributes } ) {
|
|
106
|
-
const { radius } = attributes?.style?.border || {};
|
|
107
|
-
|
|
108
|
-
if ( ! radius ) {
|
|
109
|
-
return {};
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
let radiusValue = radius;
|
|
113
|
-
|
|
114
|
-
if ( typeof radius === 'object' ) {
|
|
115
|
-
const {
|
|
116
|
-
topLeft = '0',
|
|
117
|
-
topRight = '0',
|
|
118
|
-
bottomRight = '0',
|
|
119
|
-
bottomLeft = '0',
|
|
120
|
-
} = radius;
|
|
121
|
-
radiusValue = `${ topLeft } ${ topRight } ${ bottomRight } ${ bottomLeft }`;
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
const borderMap = {
|
|
125
|
-
'--tab-border-radius': radiusValue,
|
|
126
|
-
};
|
|
127
|
-
|
|
128
|
-
return borderMap;
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
/**
|
|
132
|
-
* Injects color CSS custom properties for the tabs block, mirroring the pattern
|
|
133
|
-
* used by gap-styles (scoped to `#block-{ clientId }`). This replaces the prior
|
|
134
|
-
* inline-style object return value approach so that these values participate in
|
|
135
|
-
* style engine cascade like other dynamic style overrides.
|
|
136
|
-
*
|
|
137
|
-
* @param {Object} props
|
|
138
|
-
* @param {Object} props.attributes Block attributes
|
|
139
|
-
* @param {string} props.clientId Block client ID
|
|
140
|
-
* @return {null} No UI output
|
|
141
|
-
*/
|
|
142
|
-
export default function StyleEngine( { attributes, clientId } ) {
|
|
143
|
-
const gapVarMap = getGapStyles( { attributes } );
|
|
144
|
-
const colorVarMap = getColorStyles( { attributes } );
|
|
145
|
-
const borderVarMap = getBorderStyles( { attributes } );
|
|
146
|
-
|
|
147
|
-
const styleVarMap = {
|
|
148
|
-
...gapVarMap,
|
|
149
|
-
...colorVarMap,
|
|
150
|
-
...borderVarMap,
|
|
151
|
-
};
|
|
152
|
-
|
|
153
|
-
// Build scoped CSS only for defined values to avoid unnecessary empty declarations.
|
|
154
|
-
const declarations = Object.entries( styleVarMap )
|
|
155
|
-
.filter( ( [ , value ] ) => !! value )
|
|
156
|
-
.map( ( [ name, value ] ) => `\t${ name }: ${ value };` )
|
|
157
|
-
.join( '\n' );
|
|
158
|
-
|
|
159
|
-
useStyleOverride( {
|
|
160
|
-
css: clientId ? `#block-${ clientId } {\n${ declarations }\n}` : '',
|
|
161
|
-
} );
|
|
162
|
-
|
|
163
|
-
return null;
|
|
164
|
-
}
|