@marvalt/wparser 0.1.75 → 0.1.77
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/dist/index.cjs +43 -4
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +13 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.esm.js +43 -5
- package/dist/index.esm.js.map +1 -1
- package/dist/registry/defaultRegistry.d.ts.map +1 -1
- package/dist/utils/blockExtractors.d.ts +12 -0
- package/dist/utils/blockExtractors.d.ts.map +1 -1
- package/package.json +6 -1
package/dist/index.d.ts
CHANGED
|
@@ -355,6 +355,18 @@ declare function matchesPattern(block: WordPressBlock, pattern: BlockPattern): b
|
|
|
355
355
|
*/
|
|
356
356
|
declare function findMatchingMapping(block: WordPressBlock, mappings: ComponentMapping[]): ComponentMapping | null;
|
|
357
357
|
|
|
358
|
+
/**
|
|
359
|
+
* Return WordPress preset class names for a block's textColor and backgroundColor from attributes only.
|
|
360
|
+
* Used so group/column wrappers output standard WordPress classes (has-{slug}-color, has-text-color, etc.)
|
|
361
|
+
* and app CSS can target them for cascade. No colorMapper or themePalette needed.
|
|
362
|
+
*
|
|
363
|
+
* @param block - WordPress block
|
|
364
|
+
* @returns Object with optional text and background class strings, or null if none
|
|
365
|
+
*/
|
|
366
|
+
declare function getWordPressPresetColorClasses(block: WordPressBlock): {
|
|
367
|
+
text?: string;
|
|
368
|
+
background?: string;
|
|
369
|
+
} | null;
|
|
358
370
|
/**
|
|
359
371
|
* Extract background image URL from a block
|
|
360
372
|
* Checks various possible sources: cloudflareUrl, url, backgroundImage, innerHTML, featured image
|
|
@@ -598,5 +610,5 @@ interface SectionWrapperProps {
|
|
|
598
610
|
*/
|
|
599
611
|
declare const SectionWrapper: React$1.FC<SectionWrapperProps>;
|
|
600
612
|
|
|
601
|
-
export { SectionWrapper, WPContent, WPErrorBoundary, WPPage, buildClassName, convertImageToCloudflareVariant, convertImageUrl, convertImageUrls, createDefaultRegistry, createEnhancedRegistry, extractAlignment, extractBackgroundColor, extractBackgroundColorValue, extractBackgroundImage, extractButtonsFromInnerBlocks, extractContent, extractDimRatio, extractFontSize, extractGradientBackground, extractHeadingLevel, extractImageAttributes, extractImageUrl, extractImageUrlWithFallback, extractMediaPosition, extractMinHeight, extractOverlayColor, extractSpacerHeight, extractSubtitleFromInnerBlocks, extractTextAlign, extractTextAlignFromInnerBlocks, extractTextColor, extractTextFromHTML, extractTitle, extractTitleFromInnerBlocks, extractTitleTextColorFromInnerBlocks, extractVerticalAlignment, extractVideoIframeFromInnerBlocks, findMatchingMapping, findShortcodes, getAlignmentClasses, getBackgroundInlineStyle, getBlockTextContent, getCloudflareVariantUrl, getContainerClasses, getContentSpacingClasses, getFontSizeClasses, getImageAttributes, getImageUrl, getSectionSpacingClasses, getTextAlignClasses, isCloudflareImageUrl, isValidCloudflareUrl, matchesPattern, parseContentPosition, parseGutenbergBlocks, parseShortcodeAttrs, renderNodes, renderTextWithShortcodes };
|
|
613
|
+
export { SectionWrapper, WPContent, WPErrorBoundary, WPPage, buildClassName, convertImageToCloudflareVariant, convertImageUrl, convertImageUrls, createDefaultRegistry, createEnhancedRegistry, extractAlignment, extractBackgroundColor, extractBackgroundColorValue, extractBackgroundImage, extractButtonsFromInnerBlocks, extractContent, extractDimRatio, extractFontSize, extractGradientBackground, extractHeadingLevel, extractImageAttributes, extractImageUrl, extractImageUrlWithFallback, extractMediaPosition, extractMinHeight, extractOverlayColor, extractSpacerHeight, extractSubtitleFromInnerBlocks, extractTextAlign, extractTextAlignFromInnerBlocks, extractTextColor, extractTextFromHTML, extractTitle, extractTitleFromInnerBlocks, extractTitleTextColorFromInnerBlocks, extractVerticalAlignment, extractVideoIframeFromInnerBlocks, findMatchingMapping, findShortcodes, getAlignmentClasses, getBackgroundInlineStyle, getBlockTextContent, getCloudflareVariantUrl, getContainerClasses, getContentSpacingClasses, getFontSizeClasses, getImageAttributes, getImageUrl, getSectionSpacingClasses, getTextAlignClasses, getWordPressPresetColorClasses, isCloudflareImageUrl, isValidCloudflareUrl, matchesPattern, parseContentPosition, parseGutenbergBlocks, parseShortcodeAttrs, renderNodes, renderTextWithShortcodes };
|
|
602
614
|
export type { AuthMode, BlockPattern, BlockRenderer, BlockRendererProps, CloudflareVariantOptions, ColorMapper, ComponentMapping, ComponentRegistry, EnhancedRegistry, ImageConversionOptions, ParseOptions, ParsedShortcode, RenderContext, RenderOptions, SectionWrapperProps, ShortcodeAttributes, ShortcodeRenderer, SpacingConfig, WPContentProps, WPNode, WPPageProps, WordPressBlock, WordPressEmbedded, WordPressFeaturedMedia, WordPressPageMinimal, WordPressTitleField };
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7C,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,OAAO,EAAE,2BAA2B,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACtI,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,OAAO,EACL,2BAA2B,EAC3B,oCAAoC,EACpC,8BAA8B,EAC9B,6BAA6B,EAC7B,iCAAiC,EACjC,+BAA+B,EAC/B,+BAA+B,EAC/B,oBAAoB,EACpB,sBAAsB,EACtB,2BAA2B,EAC3B,wBAAwB,EACxB,yBAAyB,EACzB,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7C,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,OAAO,EAAE,2BAA2B,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACtI,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,OAAO,EACL,2BAA2B,EAC3B,oCAAoC,EACpC,8BAA8B,EAC9B,6BAA6B,EAC7B,iCAAiC,EACjC,+BAA+B,EAC/B,+BAA+B,EAC/B,oBAAoB,EACpB,sBAAsB,EACtB,2BAA2B,EAC3B,wBAAwB,EACxB,yBAAyB,EACzB,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,8BAA8B,GAC/B,MAAM,yBAAyB,CAAC;AACjC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC"}
|
package/dist/index.esm.js
CHANGED
|
@@ -1799,6 +1799,40 @@ const getCloudflareVariantUrl = (url, options) => {
|
|
|
1799
1799
|
return `${base}/${variant}`;
|
|
1800
1800
|
};
|
|
1801
1801
|
|
|
1802
|
+
/**
|
|
1803
|
+
* Normalize WordPress color preset slug (e.g. "var:preset|color|accent-1" -> "accent-1")
|
|
1804
|
+
*/
|
|
1805
|
+
function normalizeColorSlug(value) {
|
|
1806
|
+
const prefix = 'var:preset|color|';
|
|
1807
|
+
if (value.startsWith(prefix)) {
|
|
1808
|
+
return value.slice(prefix.length).trim();
|
|
1809
|
+
}
|
|
1810
|
+
return value.trim();
|
|
1811
|
+
}
|
|
1812
|
+
/**
|
|
1813
|
+
* Return WordPress preset class names for a block's textColor and backgroundColor from attributes only.
|
|
1814
|
+
* Used so group/column wrappers output standard WordPress classes (has-{slug}-color, has-text-color, etc.)
|
|
1815
|
+
* and app CSS can target them for cascade. No colorMapper or themePalette needed.
|
|
1816
|
+
*
|
|
1817
|
+
* @param block - WordPress block
|
|
1818
|
+
* @returns Object with optional text and background class strings, or null if none
|
|
1819
|
+
*/
|
|
1820
|
+
function getWordPressPresetColorClasses(block) {
|
|
1821
|
+
const attrs = block.attributes || {};
|
|
1822
|
+
const textSlug = attrs['textColor'] ?? attrs['style']?.color?.text;
|
|
1823
|
+
const textValue = typeof textSlug === 'string' ? textSlug : (typeof textSlug === 'object' && textSlug && 'color' in textSlug ? textSlug.color : null);
|
|
1824
|
+
const bgSlug = attrs['backgroundColor'] ?? attrs['background'];
|
|
1825
|
+
const textName = typeof textValue === 'string' && textValue ? normalizeColorSlug(textValue) : null;
|
|
1826
|
+
const bgName = typeof bgSlug === 'string' && bgSlug ? normalizeColorSlug(bgSlug) : null;
|
|
1827
|
+
if (!textName && !bgName)
|
|
1828
|
+
return null;
|
|
1829
|
+
const result = {};
|
|
1830
|
+
if (textName)
|
|
1831
|
+
result.text = `has-${textName}-color has-text-color`;
|
|
1832
|
+
if (bgName)
|
|
1833
|
+
result.background = `has-${bgName}-background-color has-background`;
|
|
1834
|
+
return result;
|
|
1835
|
+
}
|
|
1802
1836
|
/**
|
|
1803
1837
|
* Extract background image URL from a block
|
|
1804
1838
|
* Checks various possible sources: cloudflareUrl, url, backgroundImage, innerHTML, featured image
|
|
@@ -2729,6 +2763,8 @@ const Group = ({ block, children, context }) => {
|
|
|
2729
2763
|
const layout = attrs['layout'];
|
|
2730
2764
|
// Extract background color using color mapper
|
|
2731
2765
|
const backgroundColor = extractBackgroundColor(block, context);
|
|
2766
|
+
// WordPress preset classes from attributes so app CSS can cascade (has-accent-1-color etc.)
|
|
2767
|
+
const presetColors = getWordPressPresetColorClasses(block);
|
|
2732
2768
|
// Determine if this is a section-level group (has alignment) or content-level
|
|
2733
2769
|
const isSection = align === 'full' || align === 'wide';
|
|
2734
2770
|
const containerClass = getContainerClasses(align, layout);
|
|
@@ -2741,9 +2777,9 @@ const Group = ({ block, children, context }) => {
|
|
|
2741
2777
|
const finalContainerClass = layout?.type === 'constrained' && align === 'wide'
|
|
2742
2778
|
? 'container'
|
|
2743
2779
|
: containerClass;
|
|
2744
|
-
// Build className with background color if present
|
|
2745
|
-
const className = buildClassName(finalContainerClass, spacingClass, backgroundColor //
|
|
2746
|
-
);
|
|
2780
|
+
// Build className with background color and WordPress preset text/background classes if present
|
|
2781
|
+
const className = buildClassName(finalContainerClass, spacingClass, backgroundColor, // Tailwind from colorMapper when present
|
|
2782
|
+
presetColors?.text, presetColors?.background);
|
|
2747
2783
|
return (jsxRuntimeExports.jsx("div", { className: className, children: children }));
|
|
2748
2784
|
};
|
|
2749
2785
|
const Columns = ({ block, children }) => {
|
|
@@ -2757,10 +2793,12 @@ const Column = ({ block, children, context }) => {
|
|
|
2757
2793
|
const width = attrs['width'];
|
|
2758
2794
|
// Extract background color using color mapper (Tailwind class)
|
|
2759
2795
|
const backgroundColor = extractBackgroundColor(block, context);
|
|
2796
|
+
// WordPress preset classes from attributes for cascade
|
|
2797
|
+
const presetColors = getWordPressPresetColorClasses(block);
|
|
2760
2798
|
// Inline background when no class (custom color or theme slug via themePalette)
|
|
2761
2799
|
const backgroundStyle = getBackgroundInlineStyle(block, context);
|
|
2762
2800
|
const style = { ...(width ? { flexBasis: width } : {}), ...(backgroundStyle || {}) };
|
|
2763
|
-
return (jsxRuntimeExports.jsx("div", { className: buildClassName('space-y-4 p-6 rounded-lg', backgroundColor), style: Object.keys(style).length ? style : undefined, children: children }));
|
|
2801
|
+
return (jsxRuntimeExports.jsx("div", { className: buildClassName('space-y-4 p-6 rounded-lg', backgroundColor, presetColors?.text, presetColors?.background), style: Object.keys(style).length ? style : undefined, children: children }));
|
|
2764
2802
|
};
|
|
2765
2803
|
const Separator = () => jsxRuntimeExports.jsx("hr", { className: "border-gray-200 my-8" });
|
|
2766
2804
|
const ButtonBlock = ({ block, context }) => {
|
|
@@ -3347,5 +3385,5 @@ const SectionWrapper = ({ children, background = 'light', spacing = 'medium', co
|
|
|
3347
3385
|
return (jsxRuntimeExports.jsx("section", { className: buildClassName(backgroundClasses[finalBackground] || backgroundClasses.light, spacingClasses[finalSpacing] || spacingClasses.medium, containerClasses[finalContainer] || containerClasses.contained, className), children: children }));
|
|
3348
3386
|
};
|
|
3349
3387
|
|
|
3350
|
-
export { SectionWrapper, WPContent, WPErrorBoundary, WPPage, buildClassName, convertImageToCloudflareVariant, convertImageUrl, convertImageUrls, createDefaultRegistry, createEnhancedRegistry, extractAlignment, extractBackgroundColor, extractBackgroundColorValue, extractBackgroundImage, extractButtonsFromInnerBlocks, extractContent, extractDimRatio, extractFontSize, extractGradientBackground, extractHeadingLevel, extractImageAttributes, extractImageUrl, extractImageUrlWithFallback, extractMediaPosition, extractMinHeight, extractOverlayColor, extractSpacerHeight, extractSubtitleFromInnerBlocks, extractTextAlign, extractTextAlignFromInnerBlocks, extractTextColor, extractTextFromHTML, extractTitle, extractTitleFromInnerBlocks, extractTitleTextColorFromInnerBlocks, extractVerticalAlignment, extractVideoIframeFromInnerBlocks, findMatchingMapping, findShortcodes, getAlignmentClasses, getBackgroundInlineStyle, getBlockTextContent, getCloudflareVariantUrl, getContainerClasses, getContentSpacingClasses, getFontSizeClasses, getImageAttributes, getImageUrl, getSectionSpacingClasses, getTextAlignClasses, isCloudflareImageUrl, isValidCloudflareUrl, matchesPattern, parseContentPosition, parseGutenbergBlocks, parseShortcodeAttrs, renderNodes, renderTextWithShortcodes };
|
|
3388
|
+
export { SectionWrapper, WPContent, WPErrorBoundary, WPPage, buildClassName, convertImageToCloudflareVariant, convertImageUrl, convertImageUrls, createDefaultRegistry, createEnhancedRegistry, extractAlignment, extractBackgroundColor, extractBackgroundColorValue, extractBackgroundImage, extractButtonsFromInnerBlocks, extractContent, extractDimRatio, extractFontSize, extractGradientBackground, extractHeadingLevel, extractImageAttributes, extractImageUrl, extractImageUrlWithFallback, extractMediaPosition, extractMinHeight, extractOverlayColor, extractSpacerHeight, extractSubtitleFromInnerBlocks, extractTextAlign, extractTextAlignFromInnerBlocks, extractTextColor, extractTextFromHTML, extractTitle, extractTitleFromInnerBlocks, extractTitleTextColorFromInnerBlocks, extractVerticalAlignment, extractVideoIframeFromInnerBlocks, findMatchingMapping, findShortcodes, getAlignmentClasses, getBackgroundInlineStyle, getBlockTextContent, getCloudflareVariantUrl, getContainerClasses, getContentSpacingClasses, getFontSizeClasses, getImageAttributes, getImageUrl, getSectionSpacingClasses, getTextAlignClasses, getWordPressPresetColorClasses, isCloudflareImageUrl, isValidCloudflareUrl, matchesPattern, parseContentPosition, parseGutenbergBlocks, parseShortcodeAttrs, renderNodes, renderTextWithShortcodes };
|
|
3351
3389
|
//# sourceMappingURL=index.esm.js.map
|