@endora-commerce/cms-components 0.100.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/LICENSE +21 -0
- package/README.md +59 -0
- package/dist/cms-components.css +2 -0
- package/dist/components/Accordion.d.ts +43 -0
- package/dist/components/Accordion.d.ts.map +1 -0
- package/dist/components/Accordion.js +81 -0
- package/dist/components/Accordion.js.map +1 -0
- package/dist/components/AnnouncementBar.d.ts +43 -0
- package/dist/components/AnnouncementBar.d.ts.map +1 -0
- package/dist/components/AnnouncementBar.js +27 -0
- package/dist/components/AnnouncementBar.js.map +1 -0
- package/dist/components/Button.d.ts +43 -0
- package/dist/components/Button.d.ts.map +1 -0
- package/dist/components/Button.js +122 -0
- package/dist/components/Button.js.map +1 -0
- package/dist/components/CategoryGrid.d.ts +43 -0
- package/dist/components/CategoryGrid.d.ts.map +1 -0
- package/dist/components/CategoryGrid.js +117 -0
- package/dist/components/CategoryGrid.js.map +1 -0
- package/dist/components/CategoryList.d.ts +43 -0
- package/dist/components/CategoryList.d.ts.map +1 -0
- package/dist/components/CategoryList.js +96 -0
- package/dist/components/CategoryList.js.map +1 -0
- package/dist/components/CmsPageContainer.d.ts +12 -0
- package/dist/components/CmsPageContainer.d.ts.map +1 -0
- package/dist/components/CmsPageContainer.js +19 -0
- package/dist/components/CmsPageContainer.js.map +1 -0
- package/dist/components/CmsProductCard.d.ts +35 -0
- package/dist/components/CmsProductCard.d.ts.map +1 -0
- package/dist/components/CmsProductCard.js +101 -0
- package/dist/components/CmsProductCard.js.map +1 -0
- package/dist/components/Column.d.ts +50 -0
- package/dist/components/Column.d.ts.map +1 -0
- package/dist/components/Column.js +127 -0
- package/dist/components/Column.js.map +1 -0
- package/dist/components/ContactFormEmbed.d.ts +43 -0
- package/dist/components/ContactFormEmbed.d.ts.map +1 -0
- package/dist/components/ContactFormEmbed.js +37 -0
- package/dist/components/ContactFormEmbed.js.map +1 -0
- package/dist/components/ContentSlider.d.ts +43 -0
- package/dist/components/ContentSlider.d.ts.map +1 -0
- package/dist/components/ContentSlider.js +96 -0
- package/dist/components/ContentSlider.js.map +1 -0
- package/dist/components/FeatureList.d.ts +43 -0
- package/dist/components/FeatureList.d.ts.map +1 -0
- package/dist/components/FeatureList.js +89 -0
- package/dist/components/FeatureList.js.map +1 -0
- package/dist/components/Heading.d.ts +43 -0
- package/dist/components/Heading.d.ts.map +1 -0
- package/dist/components/Heading.js +116 -0
- package/dist/components/Heading.js.map +1 -0
- package/dist/components/Hero.d.ts +43 -0
- package/dist/components/Hero.d.ts.map +1 -0
- package/dist/components/Hero.js +186 -0
- package/dist/components/Hero.js.map +1 -0
- package/dist/components/IconPickerField.d.ts +3 -0
- package/dist/components/IconPickerField.d.ts.map +1 -0
- package/dist/components/IconPickerField.js +30 -0
- package/dist/components/IconPickerField.js.map +1 -0
- package/dist/components/Icons.d.ts +43 -0
- package/dist/components/Icons.d.ts.map +1 -0
- package/dist/components/Icons.js +62 -0
- package/dist/components/Icons.js.map +1 -0
- package/dist/components/Image.d.ts +43 -0
- package/dist/components/Image.d.ts.map +1 -0
- package/dist/components/Image.js +179 -0
- package/dist/components/Image.js.map +1 -0
- package/dist/components/ImageSlider.d.ts +44 -0
- package/dist/components/ImageSlider.d.ts.map +1 -0
- package/dist/components/ImageSlider.js +186 -0
- package/dist/components/ImageSlider.js.map +1 -0
- package/dist/components/InsertBlock.d.ts +4 -0
- package/dist/components/InsertBlock.d.ts.map +1 -0
- package/dist/components/InsertBlock.js +30 -0
- package/dist/components/InsertBlock.js.map +1 -0
- package/dist/components/InsertTemplate.d.ts +4 -0
- package/dist/components/InsertTemplate.d.ts.map +1 -0
- package/dist/components/InsertTemplate.js +30 -0
- package/dist/components/InsertTemplate.js.map +1 -0
- package/dist/components/LogoStrip.d.ts +43 -0
- package/dist/components/LogoStrip.d.ts.map +1 -0
- package/dist/components/LogoStrip.js +155 -0
- package/dist/components/LogoStrip.js.map +1 -0
- package/dist/components/Map.d.ts +43 -0
- package/dist/components/Map.d.ts.map +1 -0
- package/dist/components/Map.js +165 -0
- package/dist/components/Map.js.map +1 -0
- package/dist/components/MissingComponentPlaceholder.d.ts +27 -0
- package/dist/components/MissingComponentPlaceholder.d.ts.map +1 -0
- package/dist/components/MissingComponentPlaceholder.js +24 -0
- package/dist/components/MissingComponentPlaceholder.js.map +1 -0
- package/dist/components/NewsletterSignup.d.ts +43 -0
- package/dist/components/NewsletterSignup.d.ts.map +1 -0
- package/dist/components/NewsletterSignup.js +43 -0
- package/dist/components/NewsletterSignup.js.map +1 -0
- package/dist/components/ProductCard.d.ts +43 -0
- package/dist/components/ProductCard.d.ts.map +1 -0
- package/dist/components/ProductCard.js +96 -0
- package/dist/components/ProductCard.js.map +1 -0
- package/dist/components/ProductGrid.d.ts +43 -0
- package/dist/components/ProductGrid.d.ts.map +1 -0
- package/dist/components/ProductGrid.js +138 -0
- package/dist/components/ProductGrid.js.map +1 -0
- package/dist/components/ProductSlider.d.ts +43 -0
- package/dist/components/ProductSlider.d.ts.map +1 -0
- package/dist/components/ProductSlider.js +134 -0
- package/dist/components/ProductSlider.js.map +1 -0
- package/dist/components/RawHtml.d.ts +43 -0
- package/dist/components/RawHtml.d.ts.map +1 -0
- package/dist/components/RawHtml.js +38 -0
- package/dist/components/RawHtml.js.map +1 -0
- package/dist/components/RawJs.d.ts +43 -0
- package/dist/components/RawJs.d.ts.map +1 -0
- package/dist/components/RawJs.js +53 -0
- package/dist/components/RawJs.js.map +1 -0
- package/dist/components/RichContent.d.ts +4 -0
- package/dist/components/RichContent.d.ts.map +1 -0
- package/dist/components/RichContent.js +48 -0
- package/dist/components/RichContent.js.map +1 -0
- package/dist/components/RichContentEditorField.d.ts +10 -0
- package/dist/components/RichContentEditorField.d.ts.map +1 -0
- package/dist/components/RichContentEditorField.js +130 -0
- package/dist/components/RichContentEditorField.js.map +1 -0
- package/dist/components/RichContentPublished.d.ts +5 -0
- package/dist/components/RichContentPublished.d.ts.map +1 -0
- package/dist/components/RichContentPublished.js +22 -0
- package/dist/components/RichContentPublished.js.map +1 -0
- package/dist/components/Row.d.ts +43 -0
- package/dist/components/Row.d.ts.map +1 -0
- package/dist/components/Row.js +305 -0
- package/dist/components/Row.js.map +1 -0
- package/dist/components/SimpleTable.d.ts +43 -0
- package/dist/components/SimpleTable.d.ts.map +1 -0
- package/dist/components/SimpleTable.js +155 -0
- package/dist/components/SimpleTable.js.map +1 -0
- package/dist/components/Slide.d.ts +44 -0
- package/dist/components/Slide.d.ts.map +1 -0
- package/dist/components/Slide.js +36 -0
- package/dist/components/Slide.js.map +1 -0
- package/dist/components/Social.d.ts +43 -0
- package/dist/components/Social.d.ts.map +1 -0
- package/dist/components/Social.js +110 -0
- package/dist/components/Social.js.map +1 -0
- package/dist/components/Spacer.d.ts +43 -0
- package/dist/components/Spacer.d.ts.map +1 -0
- package/dist/components/Spacer.js +48 -0
- package/dist/components/Spacer.js.map +1 -0
- package/dist/components/Stats.d.ts +43 -0
- package/dist/components/Stats.d.ts.map +1 -0
- package/dist/components/Stats.js +71 -0
- package/dist/components/Stats.js.map +1 -0
- package/dist/components/Tabs.d.ts +43 -0
- package/dist/components/Tabs.d.ts.map +1 -0
- package/dist/components/Tabs.js +70 -0
- package/dist/components/Tabs.js.map +1 -0
- package/dist/components/Testimonial.d.ts +43 -0
- package/dist/components/Testimonial.d.ts.map +1 -0
- package/dist/components/Testimonial.js +74 -0
- package/dist/components/Testimonial.js.map +1 -0
- package/dist/components/Text.d.ts +43 -0
- package/dist/components/Text.d.ts.map +1 -0
- package/dist/components/Text.js +87 -0
- package/dist/components/Text.js.map +1 -0
- package/dist/components/Video.d.ts +43 -0
- package/dist/components/Video.d.ts.map +1 -0
- package/dist/components/Video.js +98 -0
- package/dist/components/Video.js.map +1 -0
- package/dist/components/box-styles.d.ts +19 -0
- package/dist/components/box-styles.d.ts.map +1 -0
- package/dist/components/box-styles.js +66 -0
- package/dist/components/box-styles.js.map +1 -0
- package/dist/components/button-link.d.ts +7 -0
- package/dist/components/button-link.d.ts.map +1 -0
- package/dist/components/button-link.js +15 -0
- package/dist/components/button-link.js.map +1 -0
- package/dist/components/carousel/CarouselShell.d.ts +27 -0
- package/dist/components/carousel/CarouselShell.d.ts.map +1 -0
- package/dist/components/carousel/CarouselShell.js +210 -0
- package/dist/components/carousel/CarouselShell.js.map +1 -0
- package/dist/components/catalog/CatalogSkeletons.d.ts +27 -0
- package/dist/components/catalog/CatalogSkeletons.d.ts.map +1 -0
- package/dist/components/catalog/CatalogSkeletons.js +38 -0
- package/dist/components/catalog/CatalogSkeletons.js.map +1 -0
- package/dist/components/catalog-preview-context.d.ts +9 -0
- package/dist/components/catalog-preview-context.d.ts.map +1 -0
- package/dist/components/catalog-preview-context.js +18 -0
- package/dist/components/catalog-preview-context.js.map +1 -0
- package/dist/components/icon-catalog.d.ts +139 -0
- package/dist/components/icon-catalog.d.ts.map +1 -0
- package/dist/components/icon-catalog.js +148 -0
- package/dist/components/icon-catalog.js.map +1 -0
- package/dist/components/image-fields.d.ts +6 -0
- package/dist/components/image-fields.d.ts.map +1 -0
- package/dist/components/image-fields.js +11 -0
- package/dist/components/image-fields.js.map +1 -0
- package/dist/components/image-slider-item.d.ts +7 -0
- package/dist/components/image-slider-item.d.ts.map +1 -0
- package/dist/components/image-slider-item.js +45 -0
- package/dist/components/image-slider-item.js.map +1 -0
- package/dist/components/render-context.d.ts +29 -0
- package/dist/components/render-context.d.ts.map +1 -0
- package/dist/components/render-context.js +21 -0
- package/dist/components/render-context.js.map +1 -0
- package/dist/components/rich-content-shared.d.ts +11 -0
- package/dist/components/rich-content-shared.d.ts.map +1 -0
- package/dist/components/rich-content-shared.js +132 -0
- package/dist/components/rich-content-shared.js.map +1 -0
- package/dist/components/social-networks.d.ts +10 -0
- package/dist/components/social-networks.d.ts.map +1 -0
- package/dist/components/social-networks.js +43 -0
- package/dist/components/social-networks.js.map +1 -0
- package/dist/components/styles.d.ts +2 -0
- package/dist/components/styles.d.ts.map +1 -0
- package/dist/components/styles.js +9 -0
- package/dist/components/styles.js.map +1 -0
- package/dist/components/text-content.d.ts +13 -0
- package/dist/components/text-content.d.ts.map +1 -0
- package/dist/components/text-content.js +64 -0
- package/dist/components/text-content.js.map +1 -0
- package/dist/components/typography.d.ts +26 -0
- package/dist/components/typography.d.ts.map +1 -0
- package/dist/components/typography.js +52 -0
- package/dist/components/typography.js.map +1 -0
- package/dist/editor/row-layout-presets.d.ts +34 -0
- package/dist/editor/row-layout-presets.d.ts.map +1 -0
- package/dist/editor/row-layout-presets.js +175 -0
- package/dist/editor/row-layout-presets.js.map +1 -0
- package/dist/editor/slot-edit-props.d.ts +16 -0
- package/dist/editor/slot-edit-props.d.ts.map +1 -0
- package/dist/editor/slot-edit-props.js +25 -0
- package/dist/editor/slot-edit-props.js.map +1 -0
- package/dist/fields/catalog-data-fields.d.ts +7 -0
- package/dist/fields/catalog-data-fields.d.ts.map +1 -0
- package/dist/fields/catalog-data-fields.js +4 -0
- package/dist/fields/catalog-data-fields.js.map +1 -0
- package/dist/fields/catalog-fallback-fields.d.ts +4 -0
- package/dist/fields/catalog-fallback-fields.d.ts.map +1 -0
- package/dist/fields/catalog-fallback-fields.js +34 -0
- package/dist/fields/catalog-fallback-fields.js.map +1 -0
- package/dist/fields/catalog-resolve-fields.d.ts +5 -0
- package/dist/fields/catalog-resolve-fields.d.ts.map +1 -0
- package/dist/fields/catalog-resolve-fields.js +40 -0
- package/dist/fields/catalog-resolve-fields.js.map +1 -0
- package/dist/fields/shared-fields.d.ts +176 -0
- package/dist/fields/shared-fields.d.ts.map +1 -0
- package/dist/fields/shared-fields.js +142 -0
- package/dist/fields/shared-fields.js.map +1 -0
- package/dist/hooks/use-viewport-breakpoint-tier.d.ts +4 -0
- package/dist/hooks/use-viewport-breakpoint-tier.d.ts.map +1 -0
- package/dist/hooks/use-viewport-breakpoint-tier.js +21 -0
- package/dist/hooks/use-viewport-breakpoint-tier.js.map +1 -0
- package/dist/index.d.ts +127 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +377 -0
- package/dist/index.js.map +1 -0
- package/dist/schema/catalog-types.d.ts +22 -0
- package/dist/schema/catalog-types.d.ts.map +1 -0
- package/dist/schema/catalog-types.js +2 -0
- package/dist/schema/catalog-types.js.map +1 -0
- package/dist/schema/component-types.d.ts +419 -0
- package/dist/schema/component-types.d.ts.map +1 -0
- package/dist/schema/component-types.js +2 -0
- package/dist/schema/component-types.js.map +1 -0
- package/dist/schema/envelope.d.ts +21 -0
- package/dist/schema/envelope.d.ts.map +1 -0
- package/dist/schema/envelope.js +19 -0
- package/dist/schema/envelope.js.map +1 -0
- package/dist/utils/catalog-fetch.d.ts +29 -0
- package/dist/utils/catalog-fetch.d.ts.map +1 -0
- package/dist/utils/catalog-fetch.js +88 -0
- package/dist/utils/catalog-fetch.js.map +1 -0
- package/dist/utils/catalog-load.d.ts +4 -0
- package/dist/utils/catalog-load.d.ts.map +1 -0
- package/dist/utils/catalog-load.js +11 -0
- package/dist/utils/catalog-load.js.map +1 -0
- package/dist/utils/catalog-preview-bridge.d.ts +13 -0
- package/dist/utils/catalog-preview-bridge.d.ts.map +1 -0
- package/dist/utils/catalog-preview-bridge.js +8 -0
- package/dist/utils/catalog-preview-bridge.js.map +1 -0
- package/dist/utils/catalog-skeleton-estimate.d.ts +7 -0
- package/dist/utils/catalog-skeleton-estimate.d.ts.map +1 -0
- package/dist/utils/catalog-skeleton-estimate.js +42 -0
- package/dist/utils/catalog-skeleton-estimate.js.map +1 -0
- package/dist/utils/resolve-image-url.d.ts +20 -0
- package/dist/utils/resolve-image-url.d.ts.map +1 -0
- package/dist/utils/resolve-image-url.js +24 -0
- package/dist/utils/resolve-image-url.js.map +1 -0
- package/dist/utils/sanitize-html.d.ts +6 -0
- package/dist/utils/sanitize-html.d.ts.map +1 -0
- package/dist/utils/sanitize-html.js +81 -0
- package/dist/utils/sanitize-html.js.map +1 -0
- package/dist/utils/video-embed.d.ts +11 -0
- package/dist/utils/video-embed.d.ts.map +1 -0
- package/dist/utils/video-embed.js +61 -0
- package/dist/utils/video-embed.js.map +1 -0
- package/dist/utils/walk-asset-ids.d.ts +3 -0
- package/dist/utils/walk-asset-ids.d.ts.map +1 -0
- package/dist/utils/walk-asset-ids.js +23 -0
- package/dist/utils/walk-asset-ids.js.map +1 -0
- package/package.json +117 -0
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import {} from '@measured/puck';
|
|
4
|
+
import { resolveTextAlignForTier, responsiveTextAlignClass, textAlignDataAttrs, withHideOn, } from '@endora-commerce/page-builder-core';
|
|
5
|
+
import { usePreviewBreakpointTier } from '@endora-commerce/page-builder-core/client';
|
|
6
|
+
import { BoxStyled } from './box-styles.js';
|
|
7
|
+
import { BOX_BORDER_FIELD, BOX_MARGIN_FIELD, BOX_PADDING_FIELD, DEFAULT_BOX_PROPS, TEXT_TYPOGRAPHY_FIELDS, } from '../fields/shared-fields.js';
|
|
8
|
+
import { editingTypographyStyle, hasCustomFontSize, HEADING_DEFAULT_SIZE_PX, responsiveTypographyVars, typographyStyle, } from './typography.js';
|
|
9
|
+
function normalizeHeadingLevel(level) {
|
|
10
|
+
if (typeof level === 'string' && /^h[1-6]$/.test(level)) {
|
|
11
|
+
return level;
|
|
12
|
+
}
|
|
13
|
+
if (typeof level === 'number' && level >= 1 && level <= 6) {
|
|
14
|
+
return `h${level}`;
|
|
15
|
+
}
|
|
16
|
+
return 'h2';
|
|
17
|
+
}
|
|
18
|
+
function resolveHeadingAlign(props) {
|
|
19
|
+
return props.textAlign ?? props.align;
|
|
20
|
+
}
|
|
21
|
+
function headingDefaults(level) {
|
|
22
|
+
return {
|
|
23
|
+
fontSize: HEADING_DEFAULT_SIZE_PX[level],
|
|
24
|
+
fontWeight: 700,
|
|
25
|
+
lineHeight: 1.12,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
const HeadingEditingRender = (props) => {
|
|
29
|
+
const tier = usePreviewBreakpointTier();
|
|
30
|
+
const { level, text, ...box } = props;
|
|
31
|
+
const Tag = normalizeHeadingLevel(level);
|
|
32
|
+
const resolvedAlign = resolveHeadingAlign(props);
|
|
33
|
+
const alignAttrs = textAlignDataAttrs(resolvedAlign, 'left');
|
|
34
|
+
const defaults = headingDefaults(Tag);
|
|
35
|
+
const useResponsiveSize = hasCustomFontSize(props.fontSize);
|
|
36
|
+
return (_jsx(BoxStyled, { previewTier: tier, ...box, children: _jsx(Tag, { className: `cmsc:font-sans cmsc:m-0 cmsc:text-[#15202b] cmsc:font-bold cmsc-pb-text-align ${useResponsiveSize ? 'cmsc-pb-text-size cmsc-pb-text-weight cmsc-pb-text-leading' : ''}`, style: {
|
|
37
|
+
...typographyStyle({
|
|
38
|
+
...(props.fontFamily !== undefined ? { fontFamily: props.fontFamily } : {}),
|
|
39
|
+
...(props.fontStyle !== undefined ? { fontStyle: props.fontStyle } : {}),
|
|
40
|
+
color: props.color,
|
|
41
|
+
}),
|
|
42
|
+
...(useResponsiveSize
|
|
43
|
+
? editingTypographyStyle(props, tier, defaults)
|
|
44
|
+
: {
|
|
45
|
+
fontSize: `${defaults.fontSize}px`,
|
|
46
|
+
fontWeight: defaults.fontWeight,
|
|
47
|
+
lineHeight: defaults.lineHeight,
|
|
48
|
+
}),
|
|
49
|
+
textAlign: resolveTextAlignForTier(resolvedAlign, tier, 'left'),
|
|
50
|
+
}, ...alignAttrs, children: text }) }));
|
|
51
|
+
};
|
|
52
|
+
const HeadingPublishedRender = (props) => {
|
|
53
|
+
const { level, text, ...box } = props;
|
|
54
|
+
const Tag = normalizeHeadingLevel(level);
|
|
55
|
+
const resolvedAlign = resolveHeadingAlign(props);
|
|
56
|
+
const alignAttrs = textAlignDataAttrs(resolvedAlign, 'left');
|
|
57
|
+
const defaults = headingDefaults(Tag);
|
|
58
|
+
const useResponsiveSize = hasCustomFontSize(props.fontSize);
|
|
59
|
+
return (_jsx(BoxStyled, { ...box, children: _jsx(Tag, { className: `cmsc:font-sans cmsc:m-0 cmsc:text-[#15202b] cmsc:font-bold ${responsiveTextAlignClass(resolvedAlign, 'left')} ${useResponsiveSize ? 'cmsc-pb-text-size cmsc-pb-text-weight cmsc-pb-text-leading' : ''}`, style: {
|
|
60
|
+
...(useResponsiveSize ? responsiveTypographyVars(props, defaults) : {}),
|
|
61
|
+
...typographyStyle({
|
|
62
|
+
...(props.fontFamily !== undefined ? { fontFamily: props.fontFamily } : {}),
|
|
63
|
+
...(props.fontStyle !== undefined ? { fontStyle: props.fontStyle } : {}),
|
|
64
|
+
color: props.color,
|
|
65
|
+
}),
|
|
66
|
+
...(!useResponsiveSize
|
|
67
|
+
? {
|
|
68
|
+
fontSize: `${defaults.fontSize}px`,
|
|
69
|
+
fontWeight: defaults.fontWeight,
|
|
70
|
+
lineHeight: defaults.lineHeight,
|
|
71
|
+
}
|
|
72
|
+
: {}),
|
|
73
|
+
}, ...alignAttrs, children: text }) }));
|
|
74
|
+
};
|
|
75
|
+
const headingConfig = {
|
|
76
|
+
label: 'Heading',
|
|
77
|
+
fields: {
|
|
78
|
+
level: {
|
|
79
|
+
type: 'select',
|
|
80
|
+
label: 'Level',
|
|
81
|
+
options: [
|
|
82
|
+
{ label: 'H1', value: 'h1' },
|
|
83
|
+
{ label: 'H2', value: 'h2' },
|
|
84
|
+
{ label: 'H3', value: 'h3' },
|
|
85
|
+
{ label: 'H4', value: 'h4' },
|
|
86
|
+
{ label: 'H5', value: 'h5' },
|
|
87
|
+
{ label: 'H6', value: 'h6' },
|
|
88
|
+
],
|
|
89
|
+
},
|
|
90
|
+
text: { type: 'textarea', label: 'Text', contentEditable: true },
|
|
91
|
+
...TEXT_TYPOGRAPHY_FIELDS,
|
|
92
|
+
margin: BOX_MARGIN_FIELD,
|
|
93
|
+
padding: BOX_PADDING_FIELD,
|
|
94
|
+
border: BOX_BORDER_FIELD,
|
|
95
|
+
},
|
|
96
|
+
defaultProps: {
|
|
97
|
+
level: 'h2',
|
|
98
|
+
text: 'Section heading',
|
|
99
|
+
fontFamily: 'sans',
|
|
100
|
+
fontStyle: 'normal',
|
|
101
|
+
color: '#15202b',
|
|
102
|
+
fontWeight: 700,
|
|
103
|
+
textAlign: 'left',
|
|
104
|
+
lineHeight: 1.12,
|
|
105
|
+
...DEFAULT_BOX_PROPS,
|
|
106
|
+
},
|
|
107
|
+
resolveData: async ({ props }) => {
|
|
108
|
+
if (props.align !== undefined && props.textAlign === undefined) {
|
|
109
|
+
return { props: { ...props, textAlign: props.align } };
|
|
110
|
+
}
|
|
111
|
+
return { props };
|
|
112
|
+
},
|
|
113
|
+
render: (props) => props.puck?.isEditing ? _jsx(HeadingEditingRender, { ...props }) : _jsx(HeadingPublishedRender, { ...props }),
|
|
114
|
+
};
|
|
115
|
+
export const Heading = withHideOn(headingConfig);
|
|
116
|
+
//# sourceMappingURL=Heading.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Heading.js","sourceRoot":"","sources":["../../src/components/Heading.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { type PuckComponent } from '@measured/puck';
|
|
2
|
+
import type { HeroProps } from '../schema/component-types.js';
|
|
3
|
+
export declare const Hero: {
|
|
4
|
+
render: PuckComponent<HeroProps>;
|
|
5
|
+
label?: string;
|
|
6
|
+
defaultProps?: HeroProps;
|
|
7
|
+
fields?: import("@measured/puck").Fields<HeroProps, {}>;
|
|
8
|
+
permissions?: Partial<import("@measured/puck").Permissions>;
|
|
9
|
+
inline?: boolean;
|
|
10
|
+
resolveFields?: (data: Omit<import("@measured/puck").ComponentData<HeroProps, string, Record<string, import("@measured/puck").DefaultComponentProps>>, "type">, params: {
|
|
11
|
+
changed: Partial<Record<keyof HeroProps, boolean> & {
|
|
12
|
+
id: string;
|
|
13
|
+
}>;
|
|
14
|
+
fields: import("@measured/puck").Fields<HeroProps, {}>;
|
|
15
|
+
lastFields: import("@measured/puck").Fields<HeroProps, {}>;
|
|
16
|
+
lastData: Omit<import("@measured/puck").ComponentData<HeroProps, string, Record<string, import("@measured/puck").DefaultComponentProps>>, "type"> | null;
|
|
17
|
+
appState: import("@measured/puck").AppState;
|
|
18
|
+
parent: import("@measured/puck").ComponentData | null;
|
|
19
|
+
}) => import("@measured/puck").Fields<HeroProps, {}> | Promise<import("@measured/puck").Fields<HeroProps, {}>>;
|
|
20
|
+
resolveData?: (data: Omit<import("@measured/puck").ComponentData<HeroProps, string, Record<string, import("@measured/puck").DefaultComponentProps>>, "type">, params: {
|
|
21
|
+
changed: Partial<Record<keyof HeroProps, boolean> & {
|
|
22
|
+
id: string;
|
|
23
|
+
}>;
|
|
24
|
+
lastData: Omit<import("@measured/puck").ComponentData<HeroProps, string, Record<string, import("@measured/puck").DefaultComponentProps>>, "type"> | null;
|
|
25
|
+
metadata: import("@measured/puck").Metadata;
|
|
26
|
+
trigger: import("@measured/puck").ResolveDataTrigger;
|
|
27
|
+
}) => (Omit<Omit<import("@measured/puck").ComponentData<HeroProps, string, Record<string, import("@measured/puck").DefaultComponentProps>>, "type">, "props"> & {
|
|
28
|
+
props?: Partial<HeroProps>;
|
|
29
|
+
}) | Promise<Omit<Omit<import("@measured/puck").ComponentData<HeroProps, string, Record<string, import("@measured/puck").DefaultComponentProps>>, "type">, "props"> & {
|
|
30
|
+
props?: Partial<HeroProps>;
|
|
31
|
+
}>;
|
|
32
|
+
resolvePermissions?: (data: Omit<import("@measured/puck").ComponentData<HeroProps, string, Record<string, import("@measured/puck").DefaultComponentProps>>, "type">, params: {
|
|
33
|
+
changed: Partial<Record<keyof HeroProps, boolean> & {
|
|
34
|
+
id: string;
|
|
35
|
+
}>;
|
|
36
|
+
lastPermissions: Partial<import("@measured/puck").Permissions>;
|
|
37
|
+
permissions: Partial<import("@measured/puck").Permissions>;
|
|
38
|
+
appState: import("@measured/puck").AppState;
|
|
39
|
+
lastData: Omit<import("@measured/puck").ComponentData<HeroProps, string, Record<string, import("@measured/puck").DefaultComponentProps>>, "type"> | null;
|
|
40
|
+
}) => Promise<Partial<import("@measured/puck").Permissions>> | Partial<import("@measured/puck").Permissions>;
|
|
41
|
+
metadata?: import("@measured/puck").Metadata;
|
|
42
|
+
};
|
|
43
|
+
//# sourceMappingURL=Hero.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Hero.d.ts","sourceRoot":"","sources":["../../src/components/Hero.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAwB,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAc1E,OAAO,KAAK,EAAiB,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAoR7E,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAyB,CAAC"}
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import {} from '@measured/puck';
|
|
4
|
+
import { PB_RESPONSIVE_METADATA, buildResponsiveSpacingVars, createColorField, resolveResponsive, resolveResponsiveNumber, spacingStyleForTier, withHideOn, } from '@endora-commerce/page-builder-core';
|
|
5
|
+
import { usePreviewBreakpointTier } from '@endora-commerce/page-builder-core/client';
|
|
6
|
+
import { useViewportBreakpointTier } from '../hooks/use-viewport-breakpoint-tier.js';
|
|
7
|
+
import { BoxStyled } from './box-styles.js';
|
|
8
|
+
import { BACKGROUND_FIELD, BOX_BORDER_FIELD, BOX_MARGIN_FIELD, BOX_PADDING_FIELD, CORNER_RADIUS_FIELD, DEFAULT_BOX_PROPS, SHADOW_FIELD, } from '../fields/shared-fields.js';
|
|
9
|
+
import { resolveButtonHref } from './button-link.js';
|
|
10
|
+
const variantStyles = {
|
|
11
|
+
primary: 'cmsc-pb-btn-primary',
|
|
12
|
+
secondary: 'cmsc-pb-btn-secondary',
|
|
13
|
+
ghost: 'cmsc-pb-btn-ghost',
|
|
14
|
+
};
|
|
15
|
+
function contentPaddingStyle(padding, tier) {
|
|
16
|
+
if (tier)
|
|
17
|
+
return spacingStyleForTier(padding, tier, 'padding');
|
|
18
|
+
return buildResponsiveSpacingVars('padding', padding);
|
|
19
|
+
}
|
|
20
|
+
function buttonColorStyle(props) {
|
|
21
|
+
const style = {};
|
|
22
|
+
if (props.buttonBackgroundColor && props.buttonBackgroundColor !== 'transparent') {
|
|
23
|
+
style.backgroundColor = props.buttonBackgroundColor;
|
|
24
|
+
style.borderColor = props.buttonBackgroundColor;
|
|
25
|
+
}
|
|
26
|
+
if (props.buttonTextColor && props.buttonTextColor !== 'transparent') {
|
|
27
|
+
style.color = props.buttonTextColor;
|
|
28
|
+
}
|
|
29
|
+
return style;
|
|
30
|
+
}
|
|
31
|
+
function variantClasses(variant) {
|
|
32
|
+
const mobile = resolveResponsive(variant, 'mobile', 'primary');
|
|
33
|
+
const tablet = resolveResponsive(variant, 'tablet', 'primary');
|
|
34
|
+
const desktop = resolveResponsive(variant, 'desktop', 'primary');
|
|
35
|
+
const classes = [variantStyles[mobile], 'cmsc-pb-btn-variant', 'cmsc-pb-hero__cta'];
|
|
36
|
+
if (tablet !== mobile)
|
|
37
|
+
classes.push(`cmsc-pb-btn-variant-md-${tablet}`);
|
|
38
|
+
if (desktop !== tablet)
|
|
39
|
+
classes.push(`cmsc-pb-btn-variant-lg-${desktop}`);
|
|
40
|
+
return classes.join(' ');
|
|
41
|
+
}
|
|
42
|
+
const HERO_FIELDS = {
|
|
43
|
+
heading: { type: 'text', label: 'Heading' },
|
|
44
|
+
subtitle: { type: 'textarea', label: 'Subtitle' },
|
|
45
|
+
buttonLabel: { type: 'text', label: 'Button label' },
|
|
46
|
+
buttonLinkType: {
|
|
47
|
+
type: 'select',
|
|
48
|
+
label: 'Button link type',
|
|
49
|
+
options: [
|
|
50
|
+
{ label: 'Static URL', value: 'url' },
|
|
51
|
+
{ label: 'Product', value: 'product' },
|
|
52
|
+
{ label: 'Category', value: 'category' },
|
|
53
|
+
{ label: 'CMS page', value: 'page' },
|
|
54
|
+
],
|
|
55
|
+
},
|
|
56
|
+
buttonLinkSlug: { type: 'text', label: 'Button link target (slug)' },
|
|
57
|
+
buttonHref: { type: 'text', label: 'Button URL' },
|
|
58
|
+
buttonTarget: {
|
|
59
|
+
type: 'select',
|
|
60
|
+
label: 'Button target',
|
|
61
|
+
options: [
|
|
62
|
+
{ label: 'Same tab', value: '_self' },
|
|
63
|
+
{ label: 'New tab', value: '_blank' },
|
|
64
|
+
],
|
|
65
|
+
},
|
|
66
|
+
buttonVariant: {
|
|
67
|
+
type: 'select',
|
|
68
|
+
label: 'Button variant',
|
|
69
|
+
metadata: PB_RESPONSIVE_METADATA,
|
|
70
|
+
options: [
|
|
71
|
+
{ label: 'Primary', value: 'primary' },
|
|
72
|
+
{ label: 'Secondary', value: 'secondary' },
|
|
73
|
+
{ label: 'Ghost', value: 'ghost' },
|
|
74
|
+
],
|
|
75
|
+
},
|
|
76
|
+
buttonBackgroundColor: createColorField({ label: 'Button background' }),
|
|
77
|
+
buttonTextColor: createColorField({ label: 'Button text color' }),
|
|
78
|
+
background: BACKGROUND_FIELD,
|
|
79
|
+
overlayOpacity: {
|
|
80
|
+
type: 'number',
|
|
81
|
+
label: 'Overlay opacity (%)',
|
|
82
|
+
min: 0,
|
|
83
|
+
max: 90,
|
|
84
|
+
step: 5,
|
|
85
|
+
},
|
|
86
|
+
textColor: createColorField({ label: 'Text color' }),
|
|
87
|
+
contentAlign: {
|
|
88
|
+
type: 'select',
|
|
89
|
+
label: 'Content align',
|
|
90
|
+
options: [
|
|
91
|
+
{ label: 'Left', value: 'left' },
|
|
92
|
+
{ label: 'Center', value: 'center' },
|
|
93
|
+
{ label: 'Right', value: 'right' },
|
|
94
|
+
],
|
|
95
|
+
},
|
|
96
|
+
minHeightPx: {
|
|
97
|
+
type: 'number',
|
|
98
|
+
label: 'Min height (px)',
|
|
99
|
+
min: 160,
|
|
100
|
+
max: 900,
|
|
101
|
+
step: 8,
|
|
102
|
+
metadata: PB_RESPONSIVE_METADATA,
|
|
103
|
+
},
|
|
104
|
+
cornerRadius: CORNER_RADIUS_FIELD,
|
|
105
|
+
shadow: SHADOW_FIELD,
|
|
106
|
+
margin: BOX_MARGIN_FIELD,
|
|
107
|
+
padding: BOX_PADDING_FIELD,
|
|
108
|
+
border: BOX_BORDER_FIELD,
|
|
109
|
+
};
|
|
110
|
+
function HeroBody({ props, tier, editing, }) {
|
|
111
|
+
const { heading, subtitle = '', buttonLabel = '', buttonHref = '', buttonLinkType = 'url', buttonLinkSlug = '', buttonTarget = '_self', buttonVariant = 'primary', buttonBackgroundColor, buttonTextColor, minHeightPx = 320, contentAlign = 'left', overlayOpacity = 40, textColor = '#ffffff', background, cornerRadius, shadow, padding, margin, border, ...rest } = props;
|
|
112
|
+
const minHeight = resolveResponsiveNumber(minHeightPx, tier, 320);
|
|
113
|
+
const overlayAlpha = Math.min(100, Math.max(0, overlayOpacity)) / 100;
|
|
114
|
+
const resolvedHref = resolveButtonHref({
|
|
115
|
+
linkType: buttonLinkType,
|
|
116
|
+
linkSlug: buttonLinkSlug,
|
|
117
|
+
href: buttonHref,
|
|
118
|
+
});
|
|
119
|
+
const resolvedVariant = resolveResponsive(buttonVariant, tier, 'primary');
|
|
120
|
+
const colorStyle = buttonColorStyle({ buttonBackgroundColor, buttonTextColor });
|
|
121
|
+
const hasCustomColors = Object.keys(colorStyle).length > 0;
|
|
122
|
+
return (_jsx(BoxStyled, { ...rest, ...(margin !== undefined ? { margin } : {}), ...(border !== undefined ? { border } : {}), ...(background !== undefined ? { background } : {}), ...(cornerRadius !== undefined ? { cornerRadius } : {}), ...(shadow !== undefined ? { shadow } : {}), ...(editing ? { previewTier: tier } : {}), className: "cmsc-pb-hero", style: {
|
|
123
|
+
minHeight: `${minHeight}px`,
|
|
124
|
+
color: textColor,
|
|
125
|
+
['--cmsc-hero-overlay']: String(overlayAlpha),
|
|
126
|
+
}, children: _jsxs("div", { className: "cmsc-pb-hero__frame", children: [_jsx("div", { className: "cmsc-pb-hero__overlay", "aria-hidden": true }), _jsxs("div", { className: `cmsc-pb-hero__content${editing ? '' : ' cmsc-pb-padding'}`, style: {
|
|
127
|
+
textAlign: contentAlign,
|
|
128
|
+
...contentPaddingStyle(padding, editing ? tier : null),
|
|
129
|
+
}, children: [_jsx("h2", { className: "cmsc-pb-hero__heading", children: heading }), subtitle ? _jsx("p", { className: "cmsc-pb-hero__subtitle", children: subtitle }) : null, buttonLabel ? (_jsx("a", { className: hasCustomColors
|
|
130
|
+
? 'cmsc-pb-hero__cta cmsc:inline-flex cmsc:items-center cmsc:justify-center cmsc:min-h-[40px] cmsc:px-[18px] cmsc:border cmsc:border-solid cmsc:rounded-[8px] cmsc:text-[14px] cmsc:font-bold cmsc:leading-none cmsc:no-underline'
|
|
131
|
+
: editing
|
|
132
|
+
? `${variantStyles[resolvedVariant]} cmsc-pb-btn-variant cmsc-pb-hero__cta cmsc:inline-flex cmsc:items-center cmsc:justify-center cmsc:min-h-[40px] cmsc:px-[18px] cmsc:border cmsc:border-solid cmsc:rounded-[8px] cmsc:text-[14px] cmsc:font-bold cmsc:leading-none cmsc:no-underline`
|
|
133
|
+
: `${variantClasses(buttonVariant)} cmsc:inline-flex cmsc:items-center cmsc:justify-center cmsc:min-h-[40px] cmsc:px-[18px] cmsc:border cmsc:border-solid cmsc:rounded-[8px] cmsc:text-[14px] cmsc:font-bold cmsc:leading-none cmsc:no-underline`, href: resolvedHref || '#', target: buttonTarget, rel: buttonTarget === '_blank' ? 'noreferrer' : undefined, style: colorStyle, children: buttonLabel })) : null] })] }) }));
|
|
134
|
+
}
|
|
135
|
+
const HeroEditingRender = (props) => (_jsx(HeroBody, { props: props, tier: usePreviewBreakpointTier(), editing: true }));
|
|
136
|
+
const HeroPublishedRender = (props) => (_jsx(HeroBody, { props: props, tier: useViewportBreakpointTier(), editing: false }));
|
|
137
|
+
const heroConfig = {
|
|
138
|
+
label: 'Hero / CTA banner',
|
|
139
|
+
fields: HERO_FIELDS,
|
|
140
|
+
defaultProps: {
|
|
141
|
+
heading: 'Grow your B2B sales',
|
|
142
|
+
subtitle: 'Publish landing pages with catalog, content, and CTAs in one place.',
|
|
143
|
+
buttonLabel: 'Get started',
|
|
144
|
+
buttonLinkType: 'url',
|
|
145
|
+
buttonLinkSlug: '',
|
|
146
|
+
buttonHref: '/',
|
|
147
|
+
buttonTarget: '_self',
|
|
148
|
+
buttonVariant: 'primary',
|
|
149
|
+
minHeightPx: 360,
|
|
150
|
+
contentAlign: 'left',
|
|
151
|
+
overlayOpacity: 45,
|
|
152
|
+
textColor: '#ffffff',
|
|
153
|
+
...DEFAULT_BOX_PROPS,
|
|
154
|
+
background: {
|
|
155
|
+
kind: 'gradient',
|
|
156
|
+
gradientFrom: '#0f766e',
|
|
157
|
+
gradientTo: '#134e4a',
|
|
158
|
+
gradientAngle: 135,
|
|
159
|
+
},
|
|
160
|
+
padding: { mode: 'uniform', value: 48 },
|
|
161
|
+
},
|
|
162
|
+
resolveFields: (data) => {
|
|
163
|
+
const linkType = data.props.buttonLinkType ?? 'url';
|
|
164
|
+
if (linkType === 'url') {
|
|
165
|
+
const { buttonLinkSlug: _removed, ...rest } = HERO_FIELDS;
|
|
166
|
+
return rest;
|
|
167
|
+
}
|
|
168
|
+
const { buttonHref: _removed, ...rest } = HERO_FIELDS;
|
|
169
|
+
return rest;
|
|
170
|
+
},
|
|
171
|
+
resolveData: async ({ props }) => {
|
|
172
|
+
const linkType = props.buttonLinkType ?? 'url';
|
|
173
|
+
const href = resolveButtonHref({
|
|
174
|
+
linkType,
|
|
175
|
+
linkSlug: props.buttonLinkSlug,
|
|
176
|
+
href: props.buttonHref,
|
|
177
|
+
});
|
|
178
|
+
if (linkType !== 'url' && href !== props.buttonHref) {
|
|
179
|
+
return { props: { ...props, buttonHref: href } };
|
|
180
|
+
}
|
|
181
|
+
return { props };
|
|
182
|
+
},
|
|
183
|
+
render: (props) => props.puck?.isEditing ? _jsx(HeroEditingRender, { ...props }) : _jsx(HeroPublishedRender, { ...props }),
|
|
184
|
+
};
|
|
185
|
+
export const Hero = withHideOn(heroConfig);
|
|
186
|
+
//# sourceMappingURL=Hero.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Hero.js","sourceRoot":"","sources":["../../src/components/Hero.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IconPickerField.d.ts","sourceRoot":"","sources":["../../src/components/IconPickerField.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AA4E5C,wBAAgB,qBAAqB,CAAC,KAAK,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAanE"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useMemo, useState } from 'react';
|
|
4
|
+
import { FieldLabel } from '@measured/puck';
|
|
5
|
+
import { CMS_ICON_CATALOG, humanizeIconName, resolveCmsIcon, } from './icon-catalog.js';
|
|
6
|
+
function IconPickerControl({ value, onChange, readOnly, label, }) {
|
|
7
|
+
const [query, setQuery] = useState('');
|
|
8
|
+
const selected = (value && value in CMS_ICON_CATALOG ? value : 'star');
|
|
9
|
+
const SelectedIcon = resolveCmsIcon(selected);
|
|
10
|
+
const filtered = useMemo(() => {
|
|
11
|
+
const q = query.trim().toLowerCase();
|
|
12
|
+
const names = Object.keys(CMS_ICON_CATALOG);
|
|
13
|
+
if (!q)
|
|
14
|
+
return names;
|
|
15
|
+
return names.filter((name) => name.toLowerCase().includes(q) || humanizeIconName(name).toLowerCase().includes(q));
|
|
16
|
+
}, [query]);
|
|
17
|
+
return (_jsx(FieldLabel, { label: label, ...(readOnly === true ? { readOnly: true } : {}), children: _jsxs("div", { className: "cmsc-pb-icon-picker", children: [_jsxs("div", { className: "cmsc-pb-icon-picker__selected", children: [SelectedIcon ? _jsx(SelectedIcon, { size: 22, "aria-hidden": true }) : null, _jsx("span", { children: humanizeIconName(selected) })] }), _jsx("input", { type: "search", className: "cmsc-pb-icon-picker__search", placeholder: "Search icons\u2026", value: query, disabled: readOnly === true, onChange: (e) => setQuery(e.target.value) }), _jsx("div", { className: "cmsc-pb-icon-picker__grid", role: "listbox", "aria-label": "Icons", children: filtered.map((name) => {
|
|
18
|
+
const Icon = CMS_ICON_CATALOG[name];
|
|
19
|
+
const isActive = name === selected;
|
|
20
|
+
return (_jsx("button", { type: "button", role: "option", "aria-selected": isActive, title: humanizeIconName(name), disabled: readOnly === true, className: `cmsc-pb-icon-picker__item${isActive ? ' cmsc-pb-icon-picker__item--active' : ''}`, onClick: () => onChange(name), children: _jsx(Icon, { size: 18, "aria-hidden": true }) }, name));
|
|
21
|
+
}) }), filtered.length === 0 ? (_jsxs("p", { className: "cmsc-pb-icon-picker__empty", children: ["No icons match \u201C", query, "\u201D."] })) : null] }) }));
|
|
22
|
+
}
|
|
23
|
+
export function createIconPickerField(label = 'Icon') {
|
|
24
|
+
return {
|
|
25
|
+
type: 'custom',
|
|
26
|
+
label,
|
|
27
|
+
render: ({ value, onChange, readOnly }) => (_jsx(IconPickerControl, { value: value, onChange: onChange, label: label, ...(readOnly === true ? { readOnly: true } : {}) })),
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=IconPickerField.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IconPickerField.js","sourceRoot":"","sources":["../../src/components/IconPickerField.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { type PuckComponent } from '@measured/puck';
|
|
2
|
+
import type { IconsProps } from '../schema/component-types.js';
|
|
3
|
+
export declare const Icons: {
|
|
4
|
+
render: PuckComponent<IconsProps>;
|
|
5
|
+
label?: string;
|
|
6
|
+
defaultProps?: IconsProps;
|
|
7
|
+
fields?: import("@measured/puck").Fields<IconsProps, {}>;
|
|
8
|
+
permissions?: Partial<import("@measured/puck").Permissions>;
|
|
9
|
+
inline?: boolean;
|
|
10
|
+
resolveFields?: (data: Omit<import("@measured/puck").ComponentData<IconsProps, string, Record<string, import("@measured/puck").DefaultComponentProps>>, "type">, params: {
|
|
11
|
+
changed: Partial<Record<keyof IconsProps, boolean> & {
|
|
12
|
+
id: string;
|
|
13
|
+
}>;
|
|
14
|
+
fields: import("@measured/puck").Fields<IconsProps, {}>;
|
|
15
|
+
lastFields: import("@measured/puck").Fields<IconsProps, {}>;
|
|
16
|
+
lastData: Omit<import("@measured/puck").ComponentData<IconsProps, string, Record<string, import("@measured/puck").DefaultComponentProps>>, "type"> | null;
|
|
17
|
+
appState: import("@measured/puck").AppState;
|
|
18
|
+
parent: import("@measured/puck").ComponentData | null;
|
|
19
|
+
}) => import("@measured/puck").Fields<IconsProps, {}> | Promise<import("@measured/puck").Fields<IconsProps, {}>>;
|
|
20
|
+
resolveData?: (data: Omit<import("@measured/puck").ComponentData<IconsProps, string, Record<string, import("@measured/puck").DefaultComponentProps>>, "type">, params: {
|
|
21
|
+
changed: Partial<Record<keyof IconsProps, boolean> & {
|
|
22
|
+
id: string;
|
|
23
|
+
}>;
|
|
24
|
+
lastData: Omit<import("@measured/puck").ComponentData<IconsProps, string, Record<string, import("@measured/puck").DefaultComponentProps>>, "type"> | null;
|
|
25
|
+
metadata: import("@measured/puck").Metadata;
|
|
26
|
+
trigger: import("@measured/puck").ResolveDataTrigger;
|
|
27
|
+
}) => (Omit<Omit<import("@measured/puck").ComponentData<IconsProps, string, Record<string, import("@measured/puck").DefaultComponentProps>>, "type">, "props"> & {
|
|
28
|
+
props?: Partial<IconsProps>;
|
|
29
|
+
}) | Promise<Omit<Omit<import("@measured/puck").ComponentData<IconsProps, string, Record<string, import("@measured/puck").DefaultComponentProps>>, "type">, "props"> & {
|
|
30
|
+
props?: Partial<IconsProps>;
|
|
31
|
+
}>;
|
|
32
|
+
resolvePermissions?: (data: Omit<import("@measured/puck").ComponentData<IconsProps, string, Record<string, import("@measured/puck").DefaultComponentProps>>, "type">, params: {
|
|
33
|
+
changed: Partial<Record<keyof IconsProps, boolean> & {
|
|
34
|
+
id: string;
|
|
35
|
+
}>;
|
|
36
|
+
lastPermissions: Partial<import("@measured/puck").Permissions>;
|
|
37
|
+
permissions: Partial<import("@measured/puck").Permissions>;
|
|
38
|
+
appState: import("@measured/puck").AppState;
|
|
39
|
+
lastData: Omit<import("@measured/puck").ComponentData<IconsProps, string, Record<string, import("@measured/puck").DefaultComponentProps>>, "type"> | null;
|
|
40
|
+
}) => Promise<Partial<import("@measured/puck").Permissions>> | Partial<import("@measured/puck").Permissions>;
|
|
41
|
+
metadata?: import("@measured/puck").Metadata;
|
|
42
|
+
};
|
|
43
|
+
//# sourceMappingURL=Icons.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Icons.d.ts","sourceRoot":"","sources":["../../src/components/Icons.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAwB,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAS1E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AA8G/D,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAA0B,CAAC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import {} from '@measured/puck';
|
|
4
|
+
import { createColorField, resolveTextAlignForTier, responsiveTextAlignClass, textAlignDataAttrs, withHideOn, } from '@endora-commerce/page-builder-core';
|
|
5
|
+
import { usePreviewBreakpointTier } from '@endora-commerce/page-builder-core/client';
|
|
6
|
+
import { BoxStyled } from './box-styles.js';
|
|
7
|
+
import { BOX_BORDER_FIELD, BOX_MARGIN_FIELD, BOX_PADDING_FIELD, DEFAULT_BOX_PROPS, } from '../fields/shared-fields.js';
|
|
8
|
+
import { createIconPickerField } from './IconPickerField.js';
|
|
9
|
+
import { resolveCmsIcon } from './icon-catalog.js';
|
|
10
|
+
function IconsBody({ props, tier, editing, }) {
|
|
11
|
+
const { name, size = 32, color = '#15202b', strokeWidth = 2, align, href, linkTarget, ...box } = props;
|
|
12
|
+
const Icon = resolveCmsIcon(name);
|
|
13
|
+
const alignAttrs = textAlignDataAttrs(align, 'left');
|
|
14
|
+
const iconNode = Icon ? (_jsx(Icon, { size: size, color: color, strokeWidth: strokeWidth, "aria-hidden": !href })) : editing ? (_jsx("span", { className: "cmsc:text-sm cmsc:text-[#64748b]", children: "Select an icon" })) : null;
|
|
15
|
+
const content = href && Icon ? (_jsx("a", { href: href, target: linkTarget ?? '_self', rel: linkTarget === '_blank' ? 'noreferrer' : undefined, className: "cmsc:inline-flex", "aria-label": name, children: iconNode })) : (_jsx("span", { className: "cmsc:inline-flex", children: iconNode }));
|
|
16
|
+
return (_jsx(BoxStyled, { ...box, ...(editing && tier ? { previewTier: tier } : {}), children: _jsx("div", { className: tier ? 'cmsc-pb-text-align' : responsiveTextAlignClass(align, 'left'), style: tier ? { textAlign: resolveTextAlignForTier(align, tier, 'left') } : undefined, ...alignAttrs, children: content }) }));
|
|
17
|
+
}
|
|
18
|
+
const IconsEditingRender = (props) => (_jsx(IconsBody, { props: props, tier: usePreviewBreakpointTier(), editing: true }));
|
|
19
|
+
const IconsPublishedRender = (props) => (_jsx(IconsBody, { props: props, tier: null, editing: false }));
|
|
20
|
+
const iconsConfig = {
|
|
21
|
+
label: 'Icons',
|
|
22
|
+
fields: {
|
|
23
|
+
name: createIconPickerField('Icon'),
|
|
24
|
+
size: { type: 'number', label: 'Size (px)', min: 12, max: 128, step: 2 },
|
|
25
|
+
color: createColorField({ label: 'Color' }),
|
|
26
|
+
strokeWidth: { type: 'number', label: 'Stroke width', min: 1, max: 3, step: 0.25 },
|
|
27
|
+
align: {
|
|
28
|
+
type: 'select',
|
|
29
|
+
label: 'Align',
|
|
30
|
+
options: [
|
|
31
|
+
{ label: 'Left', value: 'left' },
|
|
32
|
+
{ label: 'Center', value: 'center' },
|
|
33
|
+
{ label: 'Right', value: 'right' },
|
|
34
|
+
],
|
|
35
|
+
},
|
|
36
|
+
href: { type: 'text', label: 'Link URL (optional)' },
|
|
37
|
+
linkTarget: {
|
|
38
|
+
type: 'select',
|
|
39
|
+
label: 'Link target',
|
|
40
|
+
options: [
|
|
41
|
+
{ label: 'Same tab', value: '_self' },
|
|
42
|
+
{ label: 'New tab', value: '_blank' },
|
|
43
|
+
],
|
|
44
|
+
},
|
|
45
|
+
margin: BOX_MARGIN_FIELD,
|
|
46
|
+
padding: BOX_PADDING_FIELD,
|
|
47
|
+
border: BOX_BORDER_FIELD,
|
|
48
|
+
},
|
|
49
|
+
defaultProps: {
|
|
50
|
+
name: 'star',
|
|
51
|
+
size: 32,
|
|
52
|
+
color: '#15202b',
|
|
53
|
+
strokeWidth: 2,
|
|
54
|
+
align: 'left',
|
|
55
|
+
href: '',
|
|
56
|
+
linkTarget: '_self',
|
|
57
|
+
...DEFAULT_BOX_PROPS,
|
|
58
|
+
},
|
|
59
|
+
render: (props) => props.puck?.isEditing ? _jsx(IconsEditingRender, { ...props }) : _jsx(IconsPublishedRender, { ...props }),
|
|
60
|
+
};
|
|
61
|
+
export const Icons = withHideOn(iconsConfig);
|
|
62
|
+
//# sourceMappingURL=Icons.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Icons.js","sourceRoot":"","sources":["../../src/components/Icons.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { type PuckComponent } from '@measured/puck';
|
|
2
|
+
import type { ImageProps } from '../schema/component-types.js';
|
|
3
|
+
export declare const Image: {
|
|
4
|
+
render: PuckComponent<ImageProps>;
|
|
5
|
+
label?: string;
|
|
6
|
+
defaultProps?: ImageProps;
|
|
7
|
+
fields?: import("@measured/puck").Fields<ImageProps, {}>;
|
|
8
|
+
permissions?: Partial<import("@measured/puck").Permissions>;
|
|
9
|
+
inline?: boolean;
|
|
10
|
+
resolveFields?: (data: Omit<import("@measured/puck").ComponentData<ImageProps, string, Record<string, import("@measured/puck").DefaultComponentProps>>, "type">, params: {
|
|
11
|
+
changed: Partial<Record<keyof ImageProps, boolean> & {
|
|
12
|
+
id: string;
|
|
13
|
+
}>;
|
|
14
|
+
fields: import("@measured/puck").Fields<ImageProps, {}>;
|
|
15
|
+
lastFields: import("@measured/puck").Fields<ImageProps, {}>;
|
|
16
|
+
lastData: Omit<import("@measured/puck").ComponentData<ImageProps, string, Record<string, import("@measured/puck").DefaultComponentProps>>, "type"> | null;
|
|
17
|
+
appState: import("@measured/puck").AppState;
|
|
18
|
+
parent: import("@measured/puck").ComponentData | null;
|
|
19
|
+
}) => import("@measured/puck").Fields<ImageProps, {}> | Promise<import("@measured/puck").Fields<ImageProps, {}>>;
|
|
20
|
+
resolveData?: (data: Omit<import("@measured/puck").ComponentData<ImageProps, string, Record<string, import("@measured/puck").DefaultComponentProps>>, "type">, params: {
|
|
21
|
+
changed: Partial<Record<keyof ImageProps, boolean> & {
|
|
22
|
+
id: string;
|
|
23
|
+
}>;
|
|
24
|
+
lastData: Omit<import("@measured/puck").ComponentData<ImageProps, string, Record<string, import("@measured/puck").DefaultComponentProps>>, "type"> | null;
|
|
25
|
+
metadata: import("@measured/puck").Metadata;
|
|
26
|
+
trigger: import("@measured/puck").ResolveDataTrigger;
|
|
27
|
+
}) => (Omit<Omit<import("@measured/puck").ComponentData<ImageProps, string, Record<string, import("@measured/puck").DefaultComponentProps>>, "type">, "props"> & {
|
|
28
|
+
props?: Partial<ImageProps>;
|
|
29
|
+
}) | Promise<Omit<Omit<import("@measured/puck").ComponentData<ImageProps, string, Record<string, import("@measured/puck").DefaultComponentProps>>, "type">, "props"> & {
|
|
30
|
+
props?: Partial<ImageProps>;
|
|
31
|
+
}>;
|
|
32
|
+
resolvePermissions?: (data: Omit<import("@measured/puck").ComponentData<ImageProps, string, Record<string, import("@measured/puck").DefaultComponentProps>>, "type">, params: {
|
|
33
|
+
changed: Partial<Record<keyof ImageProps, boolean> & {
|
|
34
|
+
id: string;
|
|
35
|
+
}>;
|
|
36
|
+
lastPermissions: Partial<import("@measured/puck").Permissions>;
|
|
37
|
+
permissions: Partial<import("@measured/puck").Permissions>;
|
|
38
|
+
appState: import("@measured/puck").AppState;
|
|
39
|
+
lastData: Omit<import("@measured/puck").ComponentData<ImageProps, string, Record<string, import("@measured/puck").DefaultComponentProps>>, "type"> | null;
|
|
40
|
+
}) => Promise<Partial<import("@measured/puck").Permissions>> | Partial<import("@measured/puck").Permissions>;
|
|
41
|
+
metadata?: import("@measured/puck").Metadata;
|
|
42
|
+
};
|
|
43
|
+
//# sourceMappingURL=Image.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Image.d.ts","sourceRoot":"","sources":["../../src/components/Image.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAwB,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAe1E,OAAO,KAAK,EAAE,UAAU,EAAkB,MAAM,8BAA8B,CAAC;AAwT/E,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAA0B,CAAC"}
|