@wordpress/block-library
Version:
Block library for the WordPress editor.
81 lines (79 loc) • 3.7 kB
JavaScript
;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// packages/block-library/src/gallery/gap-styles.js
var gap_styles_exports = {};
__export(gap_styles_exports, {
default: () => GalleryGapCustomProperties
});
module.exports = __toCommonJS(gap_styles_exports);
var import_block_editor = require("@wordpress/block-editor");
var import_data = require("@wordpress/data");
var import_global_styles_engine = require("@wordpress/global-styles-engine");
var import_lock_unlock = require("../lock-unlock.cjs");
var { getResponsiveMediaQueries } = (0, import_lock_unlock.unlock)(import_global_styles_engine.privateApis);
var { globalStylesDataKey } = (0, import_lock_unlock.unlock)(import_block_editor.privateApis);
var GALLERY_BLOCK_NAME = "core/gallery";
var FALLBACK_VALUE = `var( --wp--style--gallery-gap-default, var( --gallery-block--gutter-size, var( --wp--style--block-gap, 0.5em ) ) )`;
function getGalleryGapCustomPropertyStyle(selector, blockGap) {
let column = FALLBACK_VALUE;
if (blockGap) {
column = typeof blockGap === "string" ? (0, import_block_editor.__experimentalGetGapCSSValue)(blockGap) || FALLBACK_VALUE : (0, import_block_editor.__experimentalGetGapCSSValue)(blockGap?.left) || FALLBACK_VALUE;
}
return `${selector} {
--wp--style--unstable-gallery-gap: ${column === "0" ? "0px" : column}
}`;
}
function getBlockGapValue(style) {
if (!Object.hasOwn(style?.spacing || {}, "blockGap")) {
return void 0;
}
return style.spacing.blockGap;
}
function GalleryGapCustomProperties({ style, clientId }) {
const selector = `#block-${clientId}`;
const [viewportSettings] = (0, import_block_editor.useSettings)("viewport");
const globalStyles = (0, import_data.useSelect)(
(select) => select(import_block_editor.store).getSettings()?.[globalStylesDataKey],
[]
);
const globalGalleryStyles = globalStyles?.blocks?.[GALLERY_BLOCK_NAME] || {};
const styleBlockGap = getBlockGapValue(style);
const globalGalleryBlockGap = globalGalleryStyles?.spacing?.blockGap ?? FALLBACK_VALUE;
const blockGap = styleBlockGap === void 0 ? globalGalleryBlockGap : styleBlockGap;
let gap = getGalleryGapCustomPropertyStyle(selector, blockGap);
Object.entries(getResponsiveMediaQueries(viewportSettings)).forEach(
([viewport, mediaQuery]) => {
const styleViewportBlockGap = getBlockGapValue(
style?.[viewport]
);
const globalViewportBlockGap = styleBlockGap === void 0 ? globalGalleryStyles?.[viewport]?.spacing?.blockGap : void 0;
const viewportBlockGap = styleViewportBlockGap === void 0 ? globalViewportBlockGap : styleViewportBlockGap;
if (viewportBlockGap === void 0 || viewportBlockGap === null) {
return;
}
gap += `${mediaQuery}{${getGalleryGapCustomPropertyStyle(
selector,
viewportBlockGap
)}}`;
}
);
(0, import_block_editor.useStyleOverride)({ css: gap });
return null;
}
//# sourceMappingURL=gap-styles.cjs.map