efficient-web-builder 41.1.0 → 42.0.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 +99 -0
- package/README.md +0 -21
- package/dist/editor/components/SectionEditor.d.ts +0 -3
- package/dist/editor/components/SectionEditor.js +1 -1
- package/dist/editor/components/StorefrontEditor.js +1 -1
- package/dist/editor/components/storefront-editor.css +97 -117
- package/dist/editor/components/usePinnedChromeSeed.js +1 -1
- package/dist/editor/components/useSectionToBoxPass.d.ts +2 -0
- package/dist/editor/components/useSectionToBoxPass.js +1 -1
- package/dist/editor/lib/document/blocks/general/Divider/fields.js +1 -1
- package/dist/editor/lib/document/blocks/general/Flex/fields.js +1 -1
- package/dist/editor/lib/document/blocks/general/index.d.ts +2 -2
- package/dist/editor/lib/document/controls.d.ts +1 -0
- package/dist/editor/lib/document/controls.js +1 -1
- package/dist/editor/lib/document/footer-blocks.js +1 -1
- package/dist/editor/lib/document/overrides.js +1 -1
- package/dist/editor/lib/document/part-anchors.d.ts +0 -1
- package/dist/editor/lib/document/part-anchors.js +1 -1
- package/dist/editor/lib/sections/section-dry-run.d.ts +28 -3
- package/dist/editor/lib/sections/section-dry-run.js +2 -2
- package/dist/format/lib/content/authored-props.js +1 -1
- package/dist/format/lib/content/box-layout.d.ts +4 -0
- package/dist/format/lib/content/box-layout.js +1 -1
- package/dist/format/lib/content/footer.d.ts +5 -0
- package/dist/format/lib/content/footer.js +1 -1
- package/dist/format/lib/content/section-padding.js +1 -1
- package/dist/format/lib/content/section-sticky.js +1 -1
- package/dist/format/lib/content/section-width.d.ts +4 -0
- package/dist/format/lib/content/section-width.js +1 -1
- package/dist/format/lib/document/blocks/general/Divider/meta.js +1 -1
- package/dist/format/lib/document/box-footer.js +1 -1
- package/dist/format/lib/document/overlay-portal.d.ts +0 -1
- package/dist/format/lib/document/overlay-portal.js +1 -1
- package/dist/format/lib/document/section-catalog.d.ts +1 -2
- package/dist/format/lib/document/section-catalog.js +10 -2
- package/dist/format/lib/editor-words-catalogue.d.ts +3 -0
- package/dist/format/lib/editor-words-catalogue.js +2 -2
- package/dist/format/lib/finite-number.d.ts +1 -0
- package/dist/format/lib/finite-number.js +1 -0
- package/dist/format/lib/marked-children.d.ts +1 -0
- package/dist/format/lib/marked-children.js +1 -0
- package/dist/format/lib/sections/divider-style.d.ts +10 -2
- package/dist/format/lib/sections/divider-style.js +1 -1
- package/dist/format/lib/site-theme-row.d.ts +1 -0
- package/dist/format/lib/source-rules/document-surfaces.js +4 -4
- package/dist/format/lib/source-rules/editor-drag-off.js +3 -3
- package/dist/format/lib/source-rules/panel-colour-tokens.js +6 -6
- package/dist/format/lib/source-rules/panel-no-divider-lines.js +4 -4
- package/dist/format/lib/source-rules/panel-one-arrow.js +1 -1
- package/dist/format/lib/source-rules/panel-rows-use-the-shared-row.js +8 -8
- package/dist/format/lib/source-rules/support/document-folder.d.ts +2 -2
- package/dist/format/lib/source-rules/support/document-folder.js +1 -1
- package/dist/render/components/BoxTabPaneContext.d.ts +2 -0
- package/dist/render/components/BoxTabPaneContext.js +1 -0
- package/dist/render/components/BoxTabs.js +1 -1
- package/dist/render/components/Divider.d.ts +5 -4
- package/dist/render/components/Divider.js +1 -1
- package/dist/render/components/Flex.js +1 -1
- package/dist/render/components/HeroSection.js +2 -2
- package/dist/render/components/PreviewHeaderContext.d.ts +3 -1
- package/dist/render/components/PreviewHeaderContext.js +1 -1
- package/dist/render/lib/document/blocks/general/Divider/render.js +1 -1
- package/dist/render/lib/document/blocks/general/section-to-box-row-parts.d.ts +0 -1
- package/dist/render/lib/document/blocks/general/section-to-box-row-parts.js +1 -1
- package/dist/render/lib/document/blocks/general/section-to-box-rows.js +1 -1
- package/dist/render/lib/document/hero-media-parts.d.ts +2 -2
- package/dist/render/lib/document/page-render.js +1 -1
- package/dist/render/lib/document/passes/section-padding.d.ts +1 -0
- package/dist/render/lib/document/passes/section-padding.js +1 -1
- package/dist/render/lib/sections/section-to-box.d.ts +36 -6
- package/dist/render/lib/sections/section-to-box.js +1 -1
- package/dist/render/lib/text-styles/site-text-styles.d.ts +2 -0
- package/dist/render/lib/text-styles/site-text-styles.js +2 -2
- package/package.json +3 -3
- package/dist/editor/lib/puck/ColourControl.d.ts +0 -1
- package/dist/editor/lib/puck/ColourControl.js +0 -1
- package/dist/editor/lib/puck/MarkupToolbar.d.ts +0 -2
- package/dist/editor/lib/puck/MarkupToolbar.js +0 -1
- package/dist/editor/lib/puck/add-palette.d.ts +0 -1
- package/dist/editor/lib/puck/add-palette.js +0 -1
- package/dist/editor/lib/puck/add-target.d.ts +0 -1
- package/dist/editor/lib/puck/add-target.js +0 -1
- package/dist/editor/lib/puck/apply-card-corners.d.ts +0 -1
- package/dist/editor/lib/puck/apply-card-corners.js +0 -1
- package/dist/editor/lib/puck/block-offer.d.ts +0 -1
- package/dist/editor/lib/puck/block-offer.js +0 -1
- package/dist/editor/lib/puck/block-source-fields.d.ts +0 -1
- package/dist/editor/lib/puck/block-source-fields.js +0 -1
- package/dist/editor/lib/puck/blocks/general/Banner/fields.d.ts +0 -1
- package/dist/editor/lib/puck/blocks/general/Banner/fields.js +0 -1
- package/dist/editor/lib/puck/blocks/general/Breadcrumb/fields.d.ts +0 -1
- package/dist/editor/lib/puck/blocks/general/Breadcrumb/fields.js +0 -1
- package/dist/editor/lib/puck/blocks/general/ButtonBlock/fields.d.ts +0 -1
- package/dist/editor/lib/puck/blocks/general/ButtonBlock/fields.js +0 -1
- package/dist/editor/lib/puck/blocks/general/Cards/fields.d.ts +0 -1
- package/dist/editor/lib/puck/blocks/general/Cards/fields.js +0 -1
- package/dist/editor/lib/puck/blocks/general/CategoryBar/fields.d.ts +0 -1
- package/dist/editor/lib/puck/blocks/general/CategoryBar/fields.js +0 -1
- package/dist/editor/lib/puck/blocks/general/Chart/fields.d.ts +0 -1
- package/dist/editor/lib/puck/blocks/general/Chart/fields.js +0 -1
- package/dist/editor/lib/puck/blocks/general/ContactLocations/fields.d.ts +0 -1
- package/dist/editor/lib/puck/blocks/general/ContactLocations/fields.js +0 -1
- package/dist/editor/lib/puck/blocks/general/Countdown/fields.d.ts +0 -1
- package/dist/editor/lib/puck/blocks/general/Countdown/fields.js +0 -1
- package/dist/editor/lib/puck/blocks/general/Divider/fields.d.ts +0 -1
- package/dist/editor/lib/puck/blocks/general/Divider/fields.js +0 -1
- package/dist/editor/lib/puck/blocks/general/DocBody/fields.d.ts +0 -1
- package/dist/editor/lib/puck/blocks/general/DocBody/fields.js +0 -1
- package/dist/editor/lib/puck/blocks/general/DocMasthead/fields.d.ts +0 -1
- package/dist/editor/lib/puck/blocks/general/DocMasthead/fields.js +0 -1
- package/dist/editor/lib/puck/blocks/general/DocMetaCards/fields.d.ts +0 -1
- package/dist/editor/lib/puck/blocks/general/DocMetaCards/fields.js +0 -1
- package/dist/editor/lib/puck/blocks/general/DocTabs/fields.d.ts +0 -1
- package/dist/editor/lib/puck/blocks/general/DocTabs/fields.js +0 -1
- package/dist/editor/lib/puck/blocks/general/Eyebrow/fields.d.ts +0 -1
- package/dist/editor/lib/puck/blocks/general/Eyebrow/fields.js +0 -1
- package/dist/editor/lib/puck/blocks/general/FAQ/fields.d.ts +0 -1
- package/dist/editor/lib/puck/blocks/general/FAQ/fields.js +0 -1
- package/dist/editor/lib/puck/blocks/general/FeaturedCover/fields.d.ts +0 -1
- package/dist/editor/lib/puck/blocks/general/FeaturedCover/fields.js +0 -1
- package/dist/editor/lib/puck/blocks/general/Flex/fields.d.ts +0 -1
- package/dist/editor/lib/puck/blocks/general/Flex/fields.js +0 -1
- package/dist/editor/lib/puck/blocks/general/Footprint/fields.d.ts +0 -1
- package/dist/editor/lib/puck/blocks/general/Footprint/fields.js +0 -1
- package/dist/editor/lib/puck/blocks/general/Grid/fields.d.ts +0 -1
- package/dist/editor/lib/puck/blocks/general/Grid/fields.js +0 -1
- package/dist/editor/lib/puck/blocks/general/Heading/fields.d.ts +0 -1
- package/dist/editor/lib/puck/blocks/general/Heading/fields.js +0 -1
- package/dist/editor/lib/puck/blocks/general/Hero/fields.d.ts +0 -1
- package/dist/editor/lib/puck/blocks/general/Hero/fields.js +0 -1
- package/dist/editor/lib/puck/blocks/general/HeroGroup/fields.d.ts +0 -1
- package/dist/editor/lib/puck/blocks/general/HeroGroup/fields.js +0 -1
- package/dist/editor/lib/puck/blocks/general/HeroSingle/fields.d.ts +0 -1
- package/dist/editor/lib/puck/blocks/general/HeroSingle/fields.js +0 -1
- package/dist/editor/lib/puck/blocks/general/HeroSlide/fields.d.ts +0 -1
- package/dist/editor/lib/puck/blocks/general/HeroSlide/fields.js +0 -1
- package/dist/editor/lib/puck/blocks/general/ImageBlock/fields.d.ts +0 -1
- package/dist/editor/lib/puck/blocks/general/ImageBlock/fields.js +0 -1
- package/dist/editor/lib/puck/blocks/general/Integrations/fields.d.ts +0 -1
- package/dist/editor/lib/puck/blocks/general/Integrations/fields.js +0 -1
- package/dist/editor/lib/puck/blocks/general/IntroBleed/fields.d.ts +0 -1
- package/dist/editor/lib/puck/blocks/general/IntroBleed/fields.js +0 -1
- package/dist/editor/lib/puck/blocks/general/KeyFeatures/fields.d.ts +0 -1
- package/dist/editor/lib/puck/blocks/general/KeyFeatures/fields.js +0 -1
- package/dist/editor/lib/puck/blocks/general/LogoBlock/fields.d.ts +0 -1
- package/dist/editor/lib/puck/blocks/general/LogoBlock/fields.js +0 -1
- package/dist/editor/lib/puck/blocks/general/Logos/fields.d.ts +0 -1
- package/dist/editor/lib/puck/blocks/general/Logos/fields.js +0 -1
- package/dist/editor/lib/puck/blocks/general/LongRead/fields.d.ts +0 -1
- package/dist/editor/lib/puck/blocks/general/LongRead/fields.js +0 -1
- package/dist/editor/lib/puck/blocks/general/Manifesto/fields.d.ts +0 -1
- package/dist/editor/lib/puck/blocks/general/Manifesto/fields.js +0 -1
- package/dist/editor/lib/puck/blocks/general/Masthead/fields.d.ts +0 -1
- package/dist/editor/lib/puck/blocks/general/Masthead/fields.js +0 -1
- package/dist/editor/lib/puck/blocks/general/Mockup/fields.d.ts +0 -1
- package/dist/editor/lib/puck/blocks/general/Mockup/fields.js +0 -1
- package/dist/editor/lib/puck/blocks/general/OrderSummary/fields.d.ts +0 -1
- package/dist/editor/lib/puck/blocks/general/OrderSummary/fields.js +0 -1
- package/dist/editor/lib/puck/blocks/general/ParagraphsA/fields.d.ts +0 -1
- package/dist/editor/lib/puck/blocks/general/ParagraphsA/fields.js +0 -1
- package/dist/editor/lib/puck/blocks/general/PaymentBadges/fields.d.ts +0 -1
- package/dist/editor/lib/puck/blocks/general/PaymentBadges/fields.js +0 -1
- package/dist/editor/lib/puck/blocks/general/PostCard/fields.d.ts +0 -1
- package/dist/editor/lib/puck/blocks/general/PostCard/fields.js +0 -1
- package/dist/editor/lib/puck/blocks/general/ProcessSteps/fields.d.ts +0 -1
- package/dist/editor/lib/puck/blocks/general/ProcessSteps/fields.js +0 -1
- package/dist/editor/lib/puck/blocks/general/Prose/fields.d.ts +0 -1
- package/dist/editor/lib/puck/blocks/general/Prose/fields.js +0 -1
- package/dist/editor/lib/puck/blocks/general/SectionHeader/fields.d.ts +0 -1
- package/dist/editor/lib/puck/blocks/general/SectionHeader/fields.js +0 -1
- package/dist/editor/lib/puck/blocks/general/Series/fields.d.ts +0 -1
- package/dist/editor/lib/puck/blocks/general/Series/fields.js +0 -1
- package/dist/editor/lib/puck/blocks/general/SpecStrip/fields.d.ts +0 -1
- package/dist/editor/lib/puck/blocks/general/SpecStrip/fields.js +0 -1
- package/dist/editor/lib/puck/blocks/general/Split/fields.d.ts +0 -1
- package/dist/editor/lib/puck/blocks/general/Split/fields.js +0 -1
- package/dist/editor/lib/puck/blocks/general/Stats/fields.d.ts +0 -1
- package/dist/editor/lib/puck/blocks/general/Stats/fields.js +0 -1
- package/dist/editor/lib/puck/blocks/general/StatsParagraph/fields.d.ts +0 -1
- package/dist/editor/lib/puck/blocks/general/StatsParagraph/fields.js +0 -1
- package/dist/editor/lib/puck/blocks/general/Testimonials/fields.d.ts +0 -1
- package/dist/editor/lib/puck/blocks/general/Testimonials/fields.js +0 -1
- package/dist/editor/lib/puck/blocks/general/Text/fields.d.ts +0 -1
- package/dist/editor/lib/puck/blocks/general/Text/fields.js +0 -1
- package/dist/editor/lib/puck/blocks/general/Ticker/fields.d.ts +0 -1
- package/dist/editor/lib/puck/blocks/general/Ticker/fields.js +0 -1
- package/dist/editor/lib/puck/blocks/general/Timeline/fields.d.ts +0 -1
- package/dist/editor/lib/puck/blocks/general/Timeline/fields.js +0 -1
- package/dist/editor/lib/puck/blocks/general/TimelineTrack/fields.d.ts +0 -1
- package/dist/editor/lib/puck/blocks/general/TimelineTrack/fields.js +0 -1
- package/dist/editor/lib/puck/blocks/general/TitleWithButtons/fields.d.ts +0 -1
- package/dist/editor/lib/puck/blocks/general/TitleWithButtons/fields.js +0 -1
- package/dist/editor/lib/puck/blocks/general/index.d.ts +0 -1
- package/dist/editor/lib/puck/blocks/general/index.js +0 -1
- package/dist/editor/lib/puck/blocks/shared-fields.d.ts +0 -1
- package/dist/editor/lib/puck/blocks/shared-fields.js +0 -1
- package/dist/editor/lib/puck/build-config.d.ts +0 -1
- package/dist/editor/lib/puck/build-config.js +0 -1
- package/dist/editor/lib/puck/canvas-typing.d.ts +0 -1
- package/dist/editor/lib/puck/canvas-typing.js +0 -1
- package/dist/editor/lib/puck/card-row-fields.d.ts +0 -1
- package/dist/editor/lib/puck/card-row-fields.js +0 -1
- package/dist/editor/lib/puck/controls.d.ts +0 -1
- package/dist/editor/lib/puck/controls.js +0 -1
- package/dist/editor/lib/puck/enclosing-section.d.ts +0 -1
- package/dist/editor/lib/puck/enclosing-section.js +0 -1
- package/dist/editor/lib/puck/every-page.d.ts +0 -1
- package/dist/editor/lib/puck/every-page.js +0 -1
- package/dist/editor/lib/puck/field-groups.d.ts +0 -1
- package/dist/editor/lib/puck/field-groups.js +0 -1
- package/dist/editor/lib/puck/footer-blocks.d.ts +0 -1
- package/dist/editor/lib/puck/footer-blocks.js +0 -1
- package/dist/editor/lib/puck/general-registry.d.ts +0 -2
- package/dist/editor/lib/puck/general-registry.js +0 -1
- package/dist/editor/lib/puck/geocode-resolve.d.ts +0 -1
- package/dist/editor/lib/puck/geocode-resolve.js +0 -1
- package/dist/editor/lib/puck/heading-outline.d.ts +0 -1
- package/dist/editor/lib/puck/heading-outline.js +0 -1
- package/dist/editor/lib/puck/hidable-rows-drawn.d.ts +0 -1
- package/dist/editor/lib/puck/hidable-rows-drawn.js +0 -1
- package/dist/editor/lib/puck/locations-focus.d.ts +0 -1
- package/dist/editor/lib/puck/locations-focus.js +0 -1
- package/dist/editor/lib/puck/locked-blocks.d.ts +0 -1
- package/dist/editor/lib/puck/locked-blocks.js +0 -1
- package/dist/editor/lib/puck/logo-color-fields.d.ts +0 -1
- package/dist/editor/lib/puck/logo-color-fields.js +0 -1
- package/dist/editor/lib/puck/overrides.d.ts +0 -1
- package/dist/editor/lib/puck/overrides.js +0 -1
- package/dist/editor/lib/puck/page-root-fields.d.ts +0 -1
- package/dist/editor/lib/puck/page-root-fields.js +0 -1
- package/dist/editor/lib/puck/page-root.d.ts +0 -1
- package/dist/editor/lib/puck/page-root.js +0 -1
- package/dist/editor/lib/puck/panel-drop-empty-headings.d.ts +0 -1
- package/dist/editor/lib/puck/panel-drop-empty-headings.js +0 -1
- package/dist/editor/lib/puck/panel-heading-scope.d.ts +0 -1
- package/dist/editor/lib/puck/panel-heading-scope.js +0 -1
- package/dist/editor/lib/puck/part-anchors.d.ts +0 -1
- package/dist/editor/lib/puck/part-anchors.js +0 -1
- package/dist/editor/lib/puck/part-row-field.d.ts +0 -1
- package/dist/editor/lib/puck/part-row-field.js +0 -1
- package/dist/editor/lib/puck/part-typing.d.ts +0 -1
- package/dist/editor/lib/puck/part-typing.js +0 -1
- package/dist/editor/lib/puck/passes/inspector.d.ts +0 -1
- package/dist/editor/lib/puck/passes/inspector.js +0 -1
- package/dist/editor/lib/puck/pinned-in-place-seed.d.ts +0 -1
- package/dist/editor/lib/puck/pinned-in-place-seed.js +0 -1
- package/dist/editor/lib/puck/registry.d.ts +0 -1
- package/dist/editor/lib/puck/registry.js +0 -1
- package/dist/editor/lib/puck/section-text-suppress.d.ts +0 -1
- package/dist/editor/lib/puck/section-text-suppress.js +0 -1
- package/dist/editor/lib/puck/section-width-fields.d.ts +0 -1
- package/dist/editor/lib/puck/section-width-fields.js +0 -1
- package/dist/editor/lib/puck/show-when-resolve.d.ts +0 -1
- package/dist/editor/lib/puck/show-when-resolve.js +0 -1
- package/dist/editor/lib/puck/template-field.d.ts +0 -1
- package/dist/editor/lib/puck/template-field.js +0 -1
- package/dist/editor/lib/puck/text-part-shape.d.ts +0 -1
- package/dist/editor/lib/puck/text-part-shape.js +0 -1
- package/dist/editor/lib/puck/theme-swatches.d.ts +0 -1
- package/dist/editor/lib/puck/theme-swatches.js +0 -1
- package/dist/format/lib/puck/blocks/block-types.d.ts +0 -1
- package/dist/format/lib/puck/blocks/block-types.js +0 -1
- package/dist/format/lib/puck/blocks/general/Banner/meta.d.ts +0 -1
- package/dist/format/lib/puck/blocks/general/Banner/meta.js +0 -1
- package/dist/format/lib/puck/blocks/general/Breadcrumb/meta.d.ts +0 -1
- package/dist/format/lib/puck/blocks/general/Breadcrumb/meta.js +0 -1
- package/dist/format/lib/puck/blocks/general/ButtonBlock/meta.d.ts +0 -1
- package/dist/format/lib/puck/blocks/general/ButtonBlock/meta.js +0 -1
- package/dist/format/lib/puck/blocks/general/Cards/meta.d.ts +0 -1
- package/dist/format/lib/puck/blocks/general/Cards/meta.js +0 -1
- package/dist/format/lib/puck/blocks/general/CategoryBar/meta.d.ts +0 -1
- package/dist/format/lib/puck/blocks/general/CategoryBar/meta.js +0 -1
- package/dist/format/lib/puck/blocks/general/Chart/meta.d.ts +0 -1
- package/dist/format/lib/puck/blocks/general/Chart/meta.js +0 -1
- package/dist/format/lib/puck/blocks/general/ContactLocations/meta.d.ts +0 -1
- package/dist/format/lib/puck/blocks/general/ContactLocations/meta.js +0 -1
- package/dist/format/lib/puck/blocks/general/Countdown/meta.d.ts +0 -1
- package/dist/format/lib/puck/blocks/general/Countdown/meta.js +0 -1
- package/dist/format/lib/puck/blocks/general/CustomHTML/fields.d.ts +0 -1
- package/dist/format/lib/puck/blocks/general/CustomHTML/fields.js +0 -1
- package/dist/format/lib/puck/blocks/general/CustomHTML/meta.d.ts +0 -1
- package/dist/format/lib/puck/blocks/general/CustomHTML/meta.js +0 -1
- package/dist/format/lib/puck/blocks/general/Divider/meta.d.ts +0 -1
- package/dist/format/lib/puck/blocks/general/Divider/meta.js +0 -1
- package/dist/format/lib/puck/blocks/general/DocBody/meta.d.ts +0 -1
- package/dist/format/lib/puck/blocks/general/DocBody/meta.js +0 -1
- package/dist/format/lib/puck/blocks/general/DocMasthead/meta.d.ts +0 -1
- package/dist/format/lib/puck/blocks/general/DocMasthead/meta.js +0 -1
- package/dist/format/lib/puck/blocks/general/DocMetaCards/meta.d.ts +0 -1
- package/dist/format/lib/puck/blocks/general/DocMetaCards/meta.js +0 -1
- package/dist/format/lib/puck/blocks/general/DocTabs/meta.d.ts +0 -1
- package/dist/format/lib/puck/blocks/general/DocTabs/meta.js +0 -1
- package/dist/format/lib/puck/blocks/general/Eyebrow/meta.d.ts +0 -1
- package/dist/format/lib/puck/blocks/general/Eyebrow/meta.js +0 -1
- package/dist/format/lib/puck/blocks/general/FAQ/meta.d.ts +0 -1
- package/dist/format/lib/puck/blocks/general/FAQ/meta.js +0 -1
- package/dist/format/lib/puck/blocks/general/FeaturedCover/meta.d.ts +0 -1
- package/dist/format/lib/puck/blocks/general/FeaturedCover/meta.js +0 -1
- package/dist/format/lib/puck/blocks/general/Flex/meta.d.ts +0 -1
- package/dist/format/lib/puck/blocks/general/Flex/meta.js +0 -1
- package/dist/format/lib/puck/blocks/general/Footprint/meta.d.ts +0 -1
- package/dist/format/lib/puck/blocks/general/Footprint/meta.js +0 -1
- package/dist/format/lib/puck/blocks/general/Grid/meta.d.ts +0 -1
- package/dist/format/lib/puck/blocks/general/Grid/meta.js +0 -1
- package/dist/format/lib/puck/blocks/general/Heading/meta.d.ts +0 -1
- package/dist/format/lib/puck/blocks/general/Heading/meta.js +0 -1
- package/dist/format/lib/puck/blocks/general/Hero/meta.d.ts +0 -1
- package/dist/format/lib/puck/blocks/general/Hero/meta.js +0 -1
- package/dist/format/lib/puck/blocks/general/HeroGroup/meta.d.ts +0 -1
- package/dist/format/lib/puck/blocks/general/HeroGroup/meta.js +0 -1
- package/dist/format/lib/puck/blocks/general/HeroSingle/meta.d.ts +0 -1
- package/dist/format/lib/puck/blocks/general/HeroSingle/meta.js +0 -1
- package/dist/format/lib/puck/blocks/general/HeroSlide/meta.d.ts +0 -1
- package/dist/format/lib/puck/blocks/general/HeroSlide/meta.js +0 -1
- package/dist/format/lib/puck/blocks/general/ImageBlock/meta.d.ts +0 -1
- package/dist/format/lib/puck/blocks/general/ImageBlock/meta.js +0 -1
- package/dist/format/lib/puck/blocks/general/Integrations/meta.d.ts +0 -1
- package/dist/format/lib/puck/blocks/general/Integrations/meta.js +0 -1
- package/dist/format/lib/puck/blocks/general/IntroBleed/meta.d.ts +0 -1
- package/dist/format/lib/puck/blocks/general/IntroBleed/meta.js +0 -1
- package/dist/format/lib/puck/blocks/general/KeyFeatures/meta.d.ts +0 -1
- package/dist/format/lib/puck/blocks/general/KeyFeatures/meta.js +0 -1
- package/dist/format/lib/puck/blocks/general/LogoBlock/meta.d.ts +0 -1
- package/dist/format/lib/puck/blocks/general/LogoBlock/meta.js +0 -1
- package/dist/format/lib/puck/blocks/general/Logos/meta.d.ts +0 -1
- package/dist/format/lib/puck/blocks/general/Logos/meta.js +0 -1
- package/dist/format/lib/puck/blocks/general/LongRead/meta.d.ts +0 -1
- package/dist/format/lib/puck/blocks/general/LongRead/meta.js +0 -1
- package/dist/format/lib/puck/blocks/general/Manifesto/meta.d.ts +0 -1
- package/dist/format/lib/puck/blocks/general/Manifesto/meta.js +0 -1
- package/dist/format/lib/puck/blocks/general/Masthead/meta.d.ts +0 -1
- package/dist/format/lib/puck/blocks/general/Masthead/meta.js +0 -1
- package/dist/format/lib/puck/blocks/general/Mockup/meta.d.ts +0 -1
- package/dist/format/lib/puck/blocks/general/Mockup/meta.js +0 -1
- package/dist/format/lib/puck/blocks/general/OrderSummary/meta.d.ts +0 -1
- package/dist/format/lib/puck/blocks/general/OrderSummary/meta.js +0 -1
- package/dist/format/lib/puck/blocks/general/ParagraphsA/meta.d.ts +0 -1
- package/dist/format/lib/puck/blocks/general/ParagraphsA/meta.js +0 -1
- package/dist/format/lib/puck/blocks/general/PaymentBadges/meta.d.ts +0 -1
- package/dist/format/lib/puck/blocks/general/PaymentBadges/meta.js +0 -1
- package/dist/format/lib/puck/blocks/general/PostCard/meta.d.ts +0 -1
- package/dist/format/lib/puck/blocks/general/PostCard/meta.js +0 -1
- package/dist/format/lib/puck/blocks/general/ProcessSteps/meta.d.ts +0 -1
- package/dist/format/lib/puck/blocks/general/ProcessSteps/meta.js +0 -1
- package/dist/format/lib/puck/blocks/general/Prose/meta.d.ts +0 -1
- package/dist/format/lib/puck/blocks/general/Prose/meta.js +0 -1
- package/dist/format/lib/puck/blocks/general/SectionHeader/meta.d.ts +0 -1
- package/dist/format/lib/puck/blocks/general/SectionHeader/meta.js +0 -1
- package/dist/format/lib/puck/blocks/general/Series/meta.d.ts +0 -1
- package/dist/format/lib/puck/blocks/general/Series/meta.js +0 -1
- package/dist/format/lib/puck/blocks/general/Spacer/fields.d.ts +0 -1
- package/dist/format/lib/puck/blocks/general/Spacer/fields.js +0 -1
- package/dist/format/lib/puck/blocks/general/Spacer/meta.d.ts +0 -1
- package/dist/format/lib/puck/blocks/general/Spacer/meta.js +0 -1
- package/dist/format/lib/puck/blocks/general/SpecStrip/meta.d.ts +0 -1
- package/dist/format/lib/puck/blocks/general/SpecStrip/meta.js +0 -1
- package/dist/format/lib/puck/blocks/general/Split/meta.d.ts +0 -1
- package/dist/format/lib/puck/blocks/general/Split/meta.js +0 -1
- package/dist/format/lib/puck/blocks/general/Stats/meta.d.ts +0 -1
- package/dist/format/lib/puck/blocks/general/Stats/meta.js +0 -1
- package/dist/format/lib/puck/blocks/general/StatsParagraph/meta.d.ts +0 -1
- package/dist/format/lib/puck/blocks/general/StatsParagraph/meta.js +0 -1
- package/dist/format/lib/puck/blocks/general/Testimonials/meta.d.ts +0 -1
- package/dist/format/lib/puck/blocks/general/Testimonials/meta.js +0 -1
- package/dist/format/lib/puck/blocks/general/Text/meta.d.ts +0 -1
- package/dist/format/lib/puck/blocks/general/Text/meta.js +0 -1
- package/dist/format/lib/puck/blocks/general/Ticker/meta.d.ts +0 -1
- package/dist/format/lib/puck/blocks/general/Ticker/meta.js +0 -1
- package/dist/format/lib/puck/blocks/general/Timeline/meta.d.ts +0 -1
- package/dist/format/lib/puck/blocks/general/Timeline/meta.js +0 -1
- package/dist/format/lib/puck/blocks/general/TimelineTrack/meta.d.ts +0 -1
- package/dist/format/lib/puck/blocks/general/TimelineTrack/meta.js +0 -1
- package/dist/format/lib/puck/blocks/general/TitleWithButtons/meta.d.ts +0 -1
- package/dist/format/lib/puck/blocks/general/TitleWithButtons/meta.js +0 -1
- package/dist/format/lib/puck/blocks/general/metas.d.ts +0 -1
- package/dist/format/lib/puck/blocks/general/metas.js +0 -1
- package/dist/format/lib/puck/blocks/general/section-bg-built-in.d.ts +0 -1
- package/dist/format/lib/puck/blocks/general/section-bg-built-in.js +0 -1
- package/dist/format/lib/puck/blocks/general/text-part-shapes.json +0 -2162
- package/dist/format/lib/puck/blocks/placeholders.d.ts +0 -1
- package/dist/format/lib/puck/blocks/placeholders.js +0 -1
- package/dist/format/lib/puck/box-footer.d.ts +0 -1
- package/dist/format/lib/puck/box-footer.js +0 -1
- package/dist/format/lib/puck/cap-hero-groups.d.ts +0 -1
- package/dist/format/lib/puck/cap-hero-groups.js +0 -1
- package/dist/format/lib/puck/card-template-layers.d.ts +0 -1
- package/dist/format/lib/puck/card-template-layers.js +0 -1
- package/dist/format/lib/puck/container-blocks.d.ts +0 -1
- package/dist/format/lib/puck/container-blocks.js +0 -1
- package/dist/format/lib/puck/editor-page-context.d.ts +0 -1
- package/dist/format/lib/puck/editor-page-context.js +0 -1
- package/dist/format/lib/puck/field-noun.d.ts +0 -1
- package/dist/format/lib/puck/field-noun.js +0 -1
- package/dist/format/lib/puck/footer-block-row-name.d.ts +0 -1
- package/dist/format/lib/puck/footer-block-row-name.js +0 -1
- package/dist/format/lib/puck/general-order.d.ts +0 -1
- package/dist/format/lib/puck/general-order.js +0 -1
- package/dist/format/lib/puck/home-page.d.ts +0 -1
- package/dist/format/lib/puck/home-page.js +0 -1
- package/dist/format/lib/puck/left-view.d.ts +0 -1
- package/dist/format/lib/puck/left-view.js +0 -1
- package/dist/format/lib/puck/locations-tree.d.ts +0 -1
- package/dist/format/lib/puck/locations-tree.js +0 -1
- package/dist/format/lib/puck/media-drop.d.ts +0 -1
- package/dist/format/lib/puck/media-drop.js +0 -1
- package/dist/format/lib/puck/media-manifest.json +0 -147
- package/dist/format/lib/puck/mockup-variant-fields.d.ts +0 -1
- package/dist/format/lib/puck/mockup-variant-fields.js +0 -1
- package/dist/format/lib/puck/nestable-content-sections.d.ts +0 -1
- package/dist/format/lib/puck/nestable-content-sections.js +0 -1
- package/dist/format/lib/puck/neutralization-contracts.d.ts +0 -1
- package/dist/format/lib/puck/neutralization-contracts.js +0 -1
- package/dist/format/lib/puck/new-site-header-seed.d.ts +0 -1
- package/dist/format/lib/puck/new-site-header-seed.js +0 -1
- package/dist/format/lib/puck/one-h1.d.ts +0 -1
- package/dist/format/lib/puck/one-h1.js +0 -1
- package/dist/format/lib/puck/overlay-portal.d.ts +0 -1
- package/dist/format/lib/puck/overlay-portal.js +0 -1
- package/dist/format/lib/puck/own-box.d.ts +0 -1
- package/dist/format/lib/puck/own-box.js +0 -1
- package/dist/format/lib/puck/panel-bands.d.ts +0 -1
- package/dist/format/lib/puck/panel-bands.js +0 -1
- package/dist/format/lib/puck/part-inks.d.ts +0 -1
- package/dist/format/lib/puck/part-inks.js +0 -1
- package/dist/format/lib/puck/part-key.d.ts +0 -1
- package/dist/format/lib/puck/part-key.js +0 -1
- package/dist/format/lib/puck/passes/catalogue-labels.d.ts +0 -1
- package/dist/format/lib/puck/passes/catalogue-labels.js +0 -1
- package/dist/format/lib/puck/passes/document-position.d.ts +0 -1
- package/dist/format/lib/puck/passes/document-position.js +0 -1
- package/dist/format/lib/puck/passes/empty-headings.d.ts +0 -1
- package/dist/format/lib/puck/passes/empty-headings.js +0 -1
- package/dist/format/lib/puck/passes/hidden-nodes.d.ts +0 -1
- package/dist/format/lib/puck/passes/hidden-nodes.js +0 -1
- package/dist/format/lib/puck/passes/media-values.d.ts +0 -1
- package/dist/format/lib/puck/passes/media-values.js +0 -1
- package/dist/format/lib/puck/passes/registry-context.d.ts +0 -1
- package/dist/format/lib/puck/passes/registry-context.js +0 -1
- package/dist/format/lib/puck/passes/settings-groups.d.ts +0 -1
- package/dist/format/lib/puck/passes/settings-groups.js +0 -1
- package/dist/format/lib/puck/passes/show-when-rows.d.ts +0 -1
- package/dist/format/lib/puck/passes/show-when-rows.js +0 -1
- package/dist/format/lib/puck/passes/slot-rules.d.ts +0 -1
- package/dist/format/lib/puck/passes/slot-rules.js +0 -1
- package/dist/format/lib/puck/passes/types.d.ts +0 -1
- package/dist/format/lib/puck/passes/types.js +0 -1
- package/dist/format/lib/puck/phone-override.d.ts +0 -1
- package/dist/format/lib/puck/phone-override.js +0 -1
- package/dist/format/lib/puck/pinned-seed-gate.d.ts +0 -1
- package/dist/format/lib/puck/pinned-seed-gate.js +0 -1
- package/dist/format/lib/puck/renamed-props.d.ts +0 -1
- package/dist/format/lib/puck/renamed-props.js +0 -1
- package/dist/format/lib/puck/section-catalog.d.ts +0 -1
- package/dist/format/lib/puck/section-catalog.js +0 -1
- package/dist/format/lib/puck/section-descriptions.d.ts +0 -1
- package/dist/format/lib/puck/section-descriptions.js +0 -1
- package/dist/format/lib/puck/section-groups.d.ts +0 -1
- package/dist/format/lib/puck/section-groups.js +0 -1
- package/dist/format/lib/puck/show-when-attach.d.ts +0 -1
- package/dist/format/lib/puck/show-when-attach.js +0 -1
- package/dist/format/lib/puck/site-gap-fields.d.ts +0 -1
- package/dist/format/lib/puck/site-gap-fields.js +0 -1
- package/dist/format/lib/puck/snapshot-contracts.d.ts +0 -1
- package/dist/format/lib/puck/snapshot-contracts.js +0 -1
- package/dist/format/lib/puck/source-bound-parts.d.ts +0 -1
- package/dist/format/lib/puck/source-bound-parts.js +0 -1
- package/dist/format/lib/puck/source-row-name.d.ts +0 -1
- package/dist/format/lib/puck/source-row-name.js +0 -1
- package/dist/format/lib/puck/templateFields.d.ts +0 -1
- package/dist/format/lib/puck/templateFields.js +0 -1
- package/dist/format/lib/puck/text-seeds.d.ts +0 -1
- package/dist/format/lib/puck/text-seeds.js +0 -1
- package/dist/format/lib/source-rules/editor-puck-drag-off.d.ts +0 -2
- package/dist/format/lib/source-rules/editor-puck-drag-off.js +0 -1
- package/dist/format/lib/source-rules/puck-document-surfaces.d.ts +0 -2
- package/dist/format/lib/source-rules/puck-document-surfaces.js +0 -1
- package/dist/render/lib/puck/blocks/general/Banner/render.d.ts +0 -1
- package/dist/render/lib/puck/blocks/general/Banner/render.js +0 -1
- package/dist/render/lib/puck/blocks/general/Breadcrumb/render.d.ts +0 -1
- package/dist/render/lib/puck/blocks/general/Breadcrumb/render.js +0 -1
- package/dist/render/lib/puck/blocks/general/ButtonBlock/render.d.ts +0 -1
- package/dist/render/lib/puck/blocks/general/ButtonBlock/render.js +0 -1
- package/dist/render/lib/puck/blocks/general/Cards/render.d.ts +0 -1
- package/dist/render/lib/puck/blocks/general/Cards/render.js +0 -1
- package/dist/render/lib/puck/blocks/general/CategoryBar/render.d.ts +0 -1
- package/dist/render/lib/puck/blocks/general/CategoryBar/render.js +0 -1
- package/dist/render/lib/puck/blocks/general/Chart/render.d.ts +0 -1
- package/dist/render/lib/puck/blocks/general/Chart/render.js +0 -1
- package/dist/render/lib/puck/blocks/general/ContactLocations/render.d.ts +0 -1
- package/dist/render/lib/puck/blocks/general/ContactLocations/render.js +0 -1
- package/dist/render/lib/puck/blocks/general/Countdown/render.d.ts +0 -1
- package/dist/render/lib/puck/blocks/general/Countdown/render.js +0 -1
- package/dist/render/lib/puck/blocks/general/CustomHTML/render.d.ts +0 -1
- package/dist/render/lib/puck/blocks/general/CustomHTML/render.js +0 -1
- package/dist/render/lib/puck/blocks/general/Divider/render.d.ts +0 -1
- package/dist/render/lib/puck/blocks/general/Divider/render.js +0 -1
- package/dist/render/lib/puck/blocks/general/DocBody/render.d.ts +0 -1
- package/dist/render/lib/puck/blocks/general/DocBody/render.js +0 -1
- package/dist/render/lib/puck/blocks/general/DocMasthead/render.d.ts +0 -1
- package/dist/render/lib/puck/blocks/general/DocMasthead/render.js +0 -1
- package/dist/render/lib/puck/blocks/general/DocMetaCards/render.d.ts +0 -1
- package/dist/render/lib/puck/blocks/general/DocMetaCards/render.js +0 -1
- package/dist/render/lib/puck/blocks/general/DocTabs/render.d.ts +0 -1
- package/dist/render/lib/puck/blocks/general/DocTabs/render.js +0 -1
- package/dist/render/lib/puck/blocks/general/Eyebrow/render.d.ts +0 -1
- package/dist/render/lib/puck/blocks/general/Eyebrow/render.js +0 -1
- package/dist/render/lib/puck/blocks/general/FAQ/render.d.ts +0 -1
- package/dist/render/lib/puck/blocks/general/FAQ/render.js +0 -1
- package/dist/render/lib/puck/blocks/general/FeaturedCover/render.d.ts +0 -1
- package/dist/render/lib/puck/blocks/general/FeaturedCover/render.js +0 -1
- package/dist/render/lib/puck/blocks/general/Flex/render.d.ts +0 -1
- package/dist/render/lib/puck/blocks/general/Flex/render.js +0 -1
- package/dist/render/lib/puck/blocks/general/Footprint/render.d.ts +0 -1
- package/dist/render/lib/puck/blocks/general/Footprint/render.js +0 -1
- package/dist/render/lib/puck/blocks/general/Grid/render.d.ts +0 -1
- package/dist/render/lib/puck/blocks/general/Grid/render.js +0 -1
- package/dist/render/lib/puck/blocks/general/Heading/render.d.ts +0 -1
- package/dist/render/lib/puck/blocks/general/Heading/render.js +0 -1
- package/dist/render/lib/puck/blocks/general/Hero/render.d.ts +0 -1
- package/dist/render/lib/puck/blocks/general/Hero/render.js +0 -1
- package/dist/render/lib/puck/blocks/general/HeroGroup/render.d.ts +0 -1
- package/dist/render/lib/puck/blocks/general/HeroGroup/render.js +0 -1
- package/dist/render/lib/puck/blocks/general/HeroSingle/render.d.ts +0 -1
- package/dist/render/lib/puck/blocks/general/HeroSingle/render.js +0 -1
- package/dist/render/lib/puck/blocks/general/HeroSlide/render.d.ts +0 -1
- package/dist/render/lib/puck/blocks/general/HeroSlide/render.js +0 -1
- package/dist/render/lib/puck/blocks/general/ImageBlock/render.d.ts +0 -1
- package/dist/render/lib/puck/blocks/general/ImageBlock/render.js +0 -1
- package/dist/render/lib/puck/blocks/general/Integrations/render.d.ts +0 -1
- package/dist/render/lib/puck/blocks/general/Integrations/render.js +0 -1
- package/dist/render/lib/puck/blocks/general/IntroBleed/render.d.ts +0 -1
- package/dist/render/lib/puck/blocks/general/IntroBleed/render.js +0 -1
- package/dist/render/lib/puck/blocks/general/KeyFeatures/render.d.ts +0 -1
- package/dist/render/lib/puck/blocks/general/KeyFeatures/render.js +0 -1
- package/dist/render/lib/puck/blocks/general/LogoBlock/render.d.ts +0 -1
- package/dist/render/lib/puck/blocks/general/LogoBlock/render.js +0 -1
- package/dist/render/lib/puck/blocks/general/Logos/render.d.ts +0 -1
- package/dist/render/lib/puck/blocks/general/Logos/render.js +0 -1
- package/dist/render/lib/puck/blocks/general/LongRead/render.d.ts +0 -1
- package/dist/render/lib/puck/blocks/general/LongRead/render.js +0 -1
- package/dist/render/lib/puck/blocks/general/Manifesto/render.d.ts +0 -1
- package/dist/render/lib/puck/blocks/general/Manifesto/render.js +0 -1
- package/dist/render/lib/puck/blocks/general/Masthead/render.d.ts +0 -1
- package/dist/render/lib/puck/blocks/general/Masthead/render.js +0 -1
- package/dist/render/lib/puck/blocks/general/Mockup/render.d.ts +0 -1
- package/dist/render/lib/puck/blocks/general/Mockup/render.js +0 -1
- package/dist/render/lib/puck/blocks/general/OrderSummary/render.d.ts +0 -1
- package/dist/render/lib/puck/blocks/general/OrderSummary/render.js +0 -1
- package/dist/render/lib/puck/blocks/general/ParagraphsA/render.d.ts +0 -1
- package/dist/render/lib/puck/blocks/general/ParagraphsA/render.js +0 -1
- package/dist/render/lib/puck/blocks/general/PaymentBadges/render.d.ts +0 -1
- package/dist/render/lib/puck/blocks/general/PaymentBadges/render.js +0 -1
- package/dist/render/lib/puck/blocks/general/PostCard/render.d.ts +0 -1
- package/dist/render/lib/puck/blocks/general/PostCard/render.js +0 -1
- package/dist/render/lib/puck/blocks/general/ProcessSteps/render.d.ts +0 -1
- package/dist/render/lib/puck/blocks/general/ProcessSteps/render.js +0 -1
- package/dist/render/lib/puck/blocks/general/Prose/render.d.ts +0 -1
- package/dist/render/lib/puck/blocks/general/Prose/render.js +0 -1
- package/dist/render/lib/puck/blocks/general/SectionHeader/render.d.ts +0 -1
- package/dist/render/lib/puck/blocks/general/SectionHeader/render.js +0 -1
- package/dist/render/lib/puck/blocks/general/Series/render.d.ts +0 -1
- package/dist/render/lib/puck/blocks/general/Series/render.js +0 -1
- package/dist/render/lib/puck/blocks/general/Spacer/render.d.ts +0 -1
- package/dist/render/lib/puck/blocks/general/Spacer/render.js +0 -1
- package/dist/render/lib/puck/blocks/general/SpecStrip/render.d.ts +0 -1
- package/dist/render/lib/puck/blocks/general/SpecStrip/render.js +0 -1
- package/dist/render/lib/puck/blocks/general/Split/render.d.ts +0 -1
- package/dist/render/lib/puck/blocks/general/Split/render.js +0 -1
- package/dist/render/lib/puck/blocks/general/Stats/render.d.ts +0 -1
- package/dist/render/lib/puck/blocks/general/Stats/render.js +0 -1
- package/dist/render/lib/puck/blocks/general/StatsParagraph/render.d.ts +0 -1
- package/dist/render/lib/puck/blocks/general/StatsParagraph/render.js +0 -1
- package/dist/render/lib/puck/blocks/general/Testimonials/render.d.ts +0 -1
- package/dist/render/lib/puck/blocks/general/Testimonials/render.js +0 -1
- package/dist/render/lib/puck/blocks/general/Text/render.d.ts +0 -1
- package/dist/render/lib/puck/blocks/general/Text/render.js +0 -1
- package/dist/render/lib/puck/blocks/general/Ticker/render.d.ts +0 -1
- package/dist/render/lib/puck/blocks/general/Ticker/render.js +0 -1
- package/dist/render/lib/puck/blocks/general/Timeline/render.d.ts +0 -1
- package/dist/render/lib/puck/blocks/general/Timeline/render.js +0 -1
- package/dist/render/lib/puck/blocks/general/TimelineTrack/render.d.ts +0 -1
- package/dist/render/lib/puck/blocks/general/TimelineTrack/render.js +0 -1
- package/dist/render/lib/puck/blocks/general/TitleWithButtons/render.d.ts +0 -1
- package/dist/render/lib/puck/blocks/general/TitleWithButtons/render.js +0 -1
- package/dist/render/lib/puck/blocks/general/render-config.d.ts +0 -1
- package/dist/render/lib/puck/blocks/general/render-config.js +0 -1
- package/dist/render/lib/puck/blocks/general/renders.d.ts +0 -1
- package/dist/render/lib/puck/blocks/general/renders.js +0 -1
- package/dist/render/lib/puck/blocks/general/section-to-box-row-parts.d.ts +0 -1
- package/dist/render/lib/puck/blocks/general/section-to-box-row-parts.js +0 -1
- package/dist/render/lib/puck/blocks/general/section-to-box-rows.d.ts +0 -1
- package/dist/render/lib/puck/blocks/general/section-to-box-rows.js +0 -1
- package/dist/render/lib/puck/blocks/scaffold.d.ts +0 -1
- package/dist/render/lib/puck/blocks/scaffold.js +0 -1
- package/dist/render/lib/puck/booking-preview.d.ts +0 -1
- package/dist/render/lib/puck/booking-preview.js +0 -1
- package/dist/render/lib/puck/editing-bridges.d.ts +0 -1
- package/dist/render/lib/puck/editing-bridges.js +0 -1
- package/dist/render/lib/puck/header-clearance.d.ts +0 -1
- package/dist/render/lib/puck/header-clearance.js +0 -1
- package/dist/render/lib/puck/header-ink.d.ts +0 -1
- package/dist/render/lib/puck/header-ink.js +0 -1
- package/dist/render/lib/puck/hero-media-parts.d.ts +0 -1
- package/dist/render/lib/puck/hero-media-parts.js +0 -1
- package/dist/render/lib/puck/migrate-legacy.d.ts +0 -1
- package/dist/render/lib/puck/migrate-legacy.js +0 -1
- package/dist/render/lib/puck/page-frame.d.ts +0 -1
- package/dist/render/lib/puck/page-frame.js +0 -1
- package/dist/render/lib/puck/page-render.d.ts +0 -2
- package/dist/render/lib/puck/page-render.js +0 -1
- package/dist/render/lib/puck/part-rows.d.ts +0 -1
- package/dist/render/lib/puck/part-rows.js +0 -1
- package/dist/render/lib/puck/part-styles.d.ts +0 -1
- package/dist/render/lib/puck/part-styles.js +0 -1
- package/dist/render/lib/puck/part-text.d.ts +0 -1
- package/dist/render/lib/puck/part-text.js +0 -1
- package/dist/render/lib/puck/passes/borders.d.ts +0 -1
- package/dist/render/lib/puck/passes/borders.js +0 -1
- package/dist/render/lib/puck/passes/cell-width.d.ts +0 -1
- package/dist/render/lib/puck/passes/cell-width.js +0 -1
- package/dist/render/lib/puck/passes/clickable-parts.d.ts +0 -1
- package/dist/render/lib/puck/passes/clickable-parts.js +0 -1
- package/dist/render/lib/puck/passes/corners.d.ts +0 -1
- package/dist/render/lib/puck/passes/corners.js +0 -1
- package/dist/render/lib/puck/passes/index.d.ts +0 -1
- package/dist/render/lib/puck/passes/index.js +0 -1
- package/dist/render/lib/puck/passes/section-anchor.d.ts +0 -1
- package/dist/render/lib/puck/passes/section-anchor.js +0 -1
- package/dist/render/lib/puck/passes/section-animation.d.ts +0 -1
- package/dist/render/lib/puck/passes/section-animation.js +0 -1
- package/dist/render/lib/puck/passes/section-height.d.ts +0 -1
- package/dist/render/lib/puck/passes/section-height.js +0 -1
- package/dist/render/lib/puck/passes/section-padding.d.ts +0 -1
- package/dist/render/lib/puck/passes/section-padding.js +0 -1
- package/dist/render/lib/puck/passes/section-sticky.d.ts +0 -1
- package/dist/render/lib/puck/passes/section-sticky.js +0 -1
- package/dist/render/lib/puck/passes/section-theme.d.ts +0 -1
- package/dist/render/lib/puck/passes/section-theme.js +0 -1
- package/dist/render/lib/puck/passes/section-width.d.ts +0 -1
- package/dist/render/lib/puck/passes/section-width.js +0 -1
- package/dist/render/lib/puck/render-registry.d.ts +0 -1
- package/dist/render/lib/puck/render-registry.js +0 -1
- package/dist/render/lib/puck/sanitize.d.ts +0 -1
- package/dist/render/lib/puck/sanitize.js +0 -1
- package/dist/render/lib/puck/selection-parent.d.ts +0 -1
- package/dist/render/lib/puck/selection-parent.js +0 -1
- package/dist/render/lib/puck/show-when.d.ts +0 -1
- package/dist/render/lib/puck/show-when.js +0 -1
- package/dist/render/lib/puck/slot-specs.d.ts +0 -1
- package/dist/render/lib/puck/slot-specs.js +0 -1
- package/dist/render/lib/puck/text-parts.d.ts +0 -1
- package/dist/render/lib/puck/text-parts.js +0 -1
|
@@ -33,6 +33,7 @@ export interface SiteThemeRow {
|
|
|
33
33
|
corner_radius_px?: number | null;
|
|
34
34
|
heading_compression: "normal" | "tight" | "compressed";
|
|
35
35
|
card_shadow?: "none" | "soft" | "lifted" | null;
|
|
36
|
+
card_theme_index?: number | null;
|
|
36
37
|
shadow_color?: string | null;
|
|
37
38
|
card_gap: "tight" | "normal" | "roomy";
|
|
38
39
|
hover_effect?: "none" | "lift" | "highlight" | null;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import{ruleChecks as
|
|
1
|
+
import{ruleChecks as R}from"./rule.js";import{builderModuleSpec as S}from"./support/ts-source.js";const o=/<(Render|SiteEditorProvider|EditorStoreProvider|ScreenStoreProvider)\b[^<>]*\bdata=\{/,m=/migrateRenamedProps\s*\(/,g=/export function migrateRenamedProps\b/;function v(l,r){const{check:t,report:p}=R("document surfaces"),a=e=>l.find(n=>n.path===e)?.text;{const e=s=>`<${s}`;t("a mount is found",o.test(`${e("Render")} config={c} data={doc} />`)),t("…across lines",o.test(`${e("SiteEditorProvider")}
|
|
2
2
|
config={c}
|
|
3
3
|
data={initial}
|
|
4
|
-
>`)),t("…and the screen's store provider is one under either of its names",["Editor","Screen"].every(s=>o.test(`${e(`${s}StoreProvider`)} config={c} data={doc}>`))),t("…and a tag named in prose is not one",!o.test(`the ${e("
|
|
4
|
+
>`)),t("…and the screen's store provider is one under either of its names",["Editor","Screen"].every(s=>o.test(`${e(`${s}StoreProvider`)} config={c} data={doc}>`))),t("…and a tag named in prose is not one",!o.test(`the ${e("Render")}> mounts, then its data={x} is read`)),t("…nor the composition API",!o.test(`${e("Render.Preview")} />`));const n="migrateRenamedProps";t("a call is found",m.test(`const d = ${n}(stored);`)),t("…and a mention is not one",!m.test(`// runs ${n} first`)),t("the declaration is found, generic as it is",g.test(`export function ${n}<T>(data: T): T {`))}const d=l.filter(e=>/\.tsx?$/.test(e.path));t(`the source scan reached the app (${d.length} TS/TSX files, at least ${r.minFiles})`,d.length>=r.minFiles);const c=d.filter(e=>o.test(e.text)).map(e=>e.path).sort(),$=Object.keys(r.mounts).sort(),u=c.filter(e=>!(e in r.mounts)),f=$.filter(e=>!c.includes(e));t(`every mount is declared (${c.length} found) — a NEW one must say whether its document comes from stored props (migrate it) or is a mock (say so)`,u.length===0,u.map(e=>`UNDECLARED: ${e}`).join(`
|
|
5
5
|
`)),t("every declared mount is a real mount — a stale row would shelter a surface that later stops migrating",f.length===0,f.map(e=>`NOT FOUND: ${e}`).join(`
|
|
6
|
-
`));const i=Object.entries(r.mounts).filter(([,e])=>e.migratedBy!==null),
|
|
6
|
+
`));const i=Object.entries(r.mounts).filter(([,e])=>e.migratedBy!==null),h=i.filter(([,e])=>!m.test(a(e.migratedBy)??""));if(t(`SURFACES=${i.length} — every mount fed from STORED props runs migrateRenamedProps, so a renamed prop key cannot silently reset a live section`,h.length===0,h.map(([e,n])=>`${e}
|
|
7
7
|
→ ${n.migratedBy} never calls migrateRenamedProps(`).join(`
|
|
8
|
-
`)),r.handedMigrator){const{rules:e,entry:n}=r.handedMigrator,s=a(e)??"";t(`${e} carries the REAL migrateRenamedProps, not a stand-in`,new RegExp(`import \\{ migrateRenamedProps \\} from "
|
|
8
|
+
`)),r.handedMigrator){const{rules:e,entry:n}=r.handedMigrator,s=a(e)??"";t(`${e} carries the REAL migrateRenamedProps, not a stand-in`,new RegExp(`import \\{ migrateRenamedProps \\} from "${S("lib/document/renamed-props")}";`).test(s)&&/^\s*migrateRenamedProps,$/m.test(s)),t(`…${n} passes those rules to the screen's mount`,/<(?:EditorScreenMount|ScreenMount)\b[^>]*addressing=\{WEBSITE_ADDRESSING\}/.test(a(n)??""))}return t(`at least ${r.storedFloor} mount(s) fed from stored props (found ${i.length})`,i.length>=r.storedFloor,"if this drops, a surface was reclassified as a mock rather than fixed"),r.migrator&&t(`${r.migrator} still exports migrateRenamedProps — the function §2 hunts calls of is live`,g.test(a(r.migrator)??"")),p()}export{v as documentSurfaces};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{ruleChecks as g}from"./rule.js";const $=/<(?:
|
|
2
|
-
<${e} data={d} permissions={permissions} />`))==="[0]"),
|
|
1
|
+
import{ruleChecks as g}from"./rule.js";const $=/<(?:SiteEditorProvider|EditorStoreProvider|ScreenStoreProvider)\b[^<>]*\bdata=\{[^<>]*>/g,S=/\bpermissions=\{\s*(?:documentPermissions\(|permissions\s*\})/,v=/permissions=\{\s*permissions\s*\}/,y=["delete","drag","duplicate","edit","insert"],d=n=>[...n.text.matchAll($)].map(i=>({file:n.path,tag:i[0]}));function h(n,i){const t=[];return S.test(n.tag)?v.test(n.tag)&&!/documentPermissions\(/.test(i)&&t.push("passes a `permissions` it does not build from documentPermissions"):t.push("mounts the editor without the edit lock's permissions"),t}function w(n,i){const{check:t,report:f}=g("editor drag off"),c=i.harnesses??{};for(const e of[!0,!1]){const s=i.documentPermissions(e);t(`documentPermissions(${e}).drag is false`,s.drag===!1,`got ${String(s.drag)}`),t(`documentPermissions(${e}) names all five keys — the old editor library MERGES this prop, so a missing key keeps its old value`,Object.keys(s).sort().join(",")===y.join(","),`got ${Object.keys(s).sort().join(",")}`),t(`documentPermissions(${e}).edit is ${e}`,s.edit===e)}{const e="SiteEditorProvider",s=o=>d({path:"fixture.tsx",text:o}).map(p=>h(p,o).length);t("the scanner flags a mount with no permissions",JSON.stringify(s(`<${e} config={c} data={d} />`))==="[1]"),t("the scanner passes a mount that calls the helper",JSON.stringify(s(`<${e} data={d} permissions={documentPermissions(!readOnly)}>`))==="[0]"),t("a local `permissions` passes only when the file builds it from the helper",JSON.stringify(s(`<${e} data={d} permissions={permissions} />`))==="[1]"&&JSON.stringify(s(`const permissions = documentPermissions(true);
|
|
2
|
+
<${e} data={d} permissions={permissions} />`))==="[0]"),t("a tag with no `data=` is not a mount",s(`<${e}.Preview />`).length===0),t("the screen's store provider is a mount under either of its names",["Editor","Screen"].every(o=>JSON.stringify(s(`<${o}StoreProvider config={c} data={d} />`))==="[1]"))}const a=n.filter(e=>/\.tsx?$/.test(e.path));t(`read the source (${a.length} TS/TSX files, at least ${i.minFiles})`,a.length>=i.minFiles,"fewer means the walk broke, and every check below is vacuous");const r=[];for(const e of a)e.path in c||r.push(...d(e));for(const e of i.mustFind??[])t(`found the editor mount (data=…) in ${e}`,r.some(s=>s.file===e));for(const[e,s]of Object.entries(c)){const o=a.find(m=>m.path===e);t(`the harness exemption is still real: ${e} (${s})`,!!o&&d(o).length>0,"remove the stale entry")}const u=new Map(a.map(e=>[e.path,e.text])),l=r.flatMap(e=>h(e,u.get(e.file)??"").map(s=>`${e.file} ${s}`));return t(`every editor mount turns the old editor library's own canvas drag off (${r.length} mount(s)${r.length?`: ${[...new Set(r.map(e=>e.file))].join(", ")}`:""})`,l.length===0,`without the edit lock's permissions a read-only viewer's canvas would take edits the save then refuses:
|
|
3
3
|
${l.join(`
|
|
4
|
-
`)}`),
|
|
4
|
+
`)}`),f()}export{w as editorDragOff};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import{ruleChecks as F}from"./rule.js";const I=new Set("slate gray zinc neutral stone red orange amber yellow lime green emerald teal cyan sky blue indigo violet purple fuchsia pink rose".split(" ")),S=new Set("text bg border ring fill stroke divide outline shadow from via to placeholder accent caret decoration".split(" ")),E=new Set("text w h p px py pt pb pl pr m mx my mt mb ml mr gap top bottom left right inset basis size leading tracking rounded border min-w max-w min-h max-h gap-x gap-y space-x space-y translate-x translate-y".split(" "));function R(t){let a=t;for(let s=0;s<20;s++){const
|
|
2
|
-
`),l=A(t,"sample.tsx",e).map(b=>`${b.kind}:${b.text}`).sort(),h=["bw:bg-black/30","bw:bg-white/45","bw:border-white/10","bw:hover:bg-white/70","bw:md:text-white","colour-value:#d85a30","colour-value:rgba(","colour-value:text-[#eee]","palette:hover:bg-amber-100","palette:text-zinc-400","palette:text-zinc-400/50","size-value:max-w-[170px]","size-value:py-[7px]","size-value:text-[13px]"];
|
|
1
|
+
import{ruleChecks as F}from"./rule.js";const I=new Set("slate gray zinc neutral stone red orange amber yellow lime green emerald teal cyan sky blue indigo violet purple fuchsia pink rose".split(" ")),S=new Set("text bg border ring fill stroke divide outline shadow from via to placeholder accent caret decoration".split(" ")),E=new Set("text w h p px py pt pb pl pr m mx my mt mb ml mr gap top bottom left right inset basis size leading tracking rounded border min-w max-w min-h max-h gap-x gap-y space-x space-y translate-x translate-y".split(" "));function R(t){let a=t;for(let s=0;s<20;s++){const i=a.replace(/var\(\s*--[A-Za-z0-9-]+\s*,((?:[^()]|\([^()]*\))*)\)/g,(d,u)=>`var(--x,${"·".repeat(u.length)})`);if(i===a)break;a=i}return a}function N(t){const a=t.lastIndexOf("]"),s=t.indexOf("/",a+1);if(s===-1)return t;const i=t.slice(s+1);return/^(?:\d{1,3}|\[[^\]]*\])$/.test(i)?t.slice(0,s):t}function O(t){let a=t;for(let s=0;s<12;s++){const i=/^(?:[a-z0-9-]+|[a-z-]+-\[[^\]]*\]|\[[^\]]*\]):(.*)$/.exec(a);if(!i)break;a=i[1]}return N(a.replace(/^!/,"").replace(/^-/,""))}function C(t){const a=O(t),s=/^([a-z-]+)-\[([^\]]+)\]$/.exec(a);if(s){const[,u,o]=s;if(o.includes("·")||/^var\(/.test(o)||/^url\(|^none$|^inherit$|^auto$/.test(o))return null;const p=/^#/.test(o)||/^(?:rgba?|hsla?|oklch|color-mix)\(/.test(o)||/^(?:white|black|transparent|currentColor)$/.test(o),f=/^-?[\d.]+(?:px|rem|em|%|vw|vh|ch|ex|pt|fr)?$|calc\(|^clamp\(/.test(o);return p&&(S.has(u)||E.has(u))?"colour-value":f&&E.has(u)?"size-value":S.has(u)&&!f?"colour-value":E.has(u)?"size-value":null}const i=/^([a-z-]+)-([a-z]+)-(\d{2,3})$/.exec(a);if(i&&S.has(i[1])&&I.has(i[2]))return"palette";const d=/^([a-z-]+)-(white|black)$/.exec(a);return d&&S.has(d[1])?"bw":null}const P=/#(?:[0-9a-fA-F]{8}|[0-9a-fA-F]{6}|[0-9a-fA-F]{4}|[0-9a-fA-F]{3})\b/g,B=/\b(?:rgba?|hsla?|oklch|color-mix)\(/g;function A(t,a,s){const i=t.createSourceFile(a,s,t.ScriptTarget.Latest,!0,t.ScriptKind.TSX),d=[],u=o=>{let p=null;if((t.isStringLiteral(o)||t.isNoSubstitutionTemplateLiteral(o)||t.isTemplateHead(o)||t.isTemplateMiddle(o)||t.isTemplateTail(o))&&(p=o.text),p&&p.length){const f=i.getLineAndCharacterOfPosition(o.getStart(i)).line+1;let r=R(p);for(const c of r.split(/[\s;{}]+/)){if(!c)continue;const w=C(c);w&&(d.push({file:a,line:f,kind:w,text:c}),c.includes("[")&&(r=r.split(c).join("·".repeat(c.length))))}for(const c of[P,B]){c.lastIndex=0;let w;for(;w=c.exec(r);)d.push({file:a,line:f,kind:"colour-value",text:w[0]})}}t.forEachChild(o,u)};return t.forEachChild(i,u),d}function U(t,a,s){let i;if(a.startsWith("@/"))i=a.slice(2);else if(a.startsWith("./")||a.startsWith("../")){const d=s.split("/").slice(0,-1);for(const u of a.split("/"))u===".."?d.pop():u!=="."&&d.push(u);i=d.join("/")}else return null;for(const d of[`${i}.ts`,`${i}.tsx`,`${i}/index.ts`,`${i}/index.tsx`,i])if(t.has(d)&&/\.tsx?$/.test(d)&&!d.endsWith(".d.ts"))return d;return null}function j(t,a){const s=new Set(a.map(o=>o.path)),i=new Map,d=new Set;for(const o of a){const p=t.createSourceFile(o.path,o.text,t.ScriptTarget.Latest,!0,t.ScriptKind.TSX),f=new Map,r=[],c=(n,m)=>{const x=U(s,n,o.path);if(x&&(r.push(x),!!m&&(m.name&&f.set(m.name.text,x),m.namedBindings&&t.isNamedImports(m.namedBindings))))for(const g of m.namedBindings.elements)f.set(g.name.text,x)},w=n=>{if(t.isImportDeclaration(n)&&t.isStringLiteral(n.moduleSpecifier)&&c(n.moduleSpecifier.text,n.importClause),t.isExportDeclaration(n)&&n.moduleSpecifier&&t.isStringLiteral(n.moduleSpecifier)&&c(n.moduleSpecifier.text),t.isCallExpression(n)&&n.expression.kind===t.SyntaxKind.ImportKeyword){const m=n.arguments[0];m&&t.isStringLiteral(m)&&c(m.text)}if(t.isObjectLiteralExpression(n)){const m=n.properties.some(g=>t.isPropertyAssignment(g)&&t.isIdentifier(g.name)&&g.name.text==="type"&&t.isStringLiteral(g.initializer)&&g.initializer.text==="custom"),x=n.properties.find(g=>t.isPropertyAssignment(g)&&t.isIdentifier(g.name)&&g.name.text==="render");if(m&&x){const g=e=>{(t.isJsxOpeningElement(e)||t.isJsxSelfClosingElement(e))&&t.isIdentifier(e.tagName)&&f.has(e.tagName.text)&&d.add(f.get(e.tagName.text)),t.forEachChild(e,g)};g(x.initializer)}}t.forEachChild(n,w)};t.forEachChild(p,w),i.set(o.path,r)}return{customFieldTargets:d,reachableFrom:o=>{const p=new Set,f=[...o];for(;f.length;){const r=f.pop();if(!p.has(r)){p.add(r);for(const c of i.get(r)??[])f.push(c)}}return p}}}const L=["bg-[","url(a","/b.png)]"].join("");function K(t,a,s){const i=a.filter(n=>/\.tsx?$/.test(n.path)&&!n.path.endsWith(".d.ts")),d=j(t,i),u=i.filter(n=>s.editorRoot(n.path)).map(n=>n.path),o=i.filter(n=>s.publishedRoot(n.path)).map(n=>n.path),p=d.reachableFrom(u),f=d.reachableFrom(o),r=[...p].filter(n=>s.panelFile(n)&&!f.has(n)),c=[...d.customFieldTargets].filter(s.panelFile),w=[...new Set([...r,...c])].sort();return{source:i,editorRoots:u,publishedRoots:o,customFields:c,population:w}}function M(t,a,s){const{check:i,report:d}=F("panel colour tokens");{const e=["// a stale slot — #319 and 13.6:1","/** Theme 1 accent #2e2e2e + black ink */",'const a = "text-[13px] py-[7px]";','const b = "text-[var(--sf-warning,#b45309)]";','const c = "border-[var(--sf-line, rgba(128,128,128,0.3))]";','const d = "text-zinc-400 hover:bg-amber-100 md:text-white";','const e = "z-[200] grid-cols-[1fr_auto]";','const f = { color: "#d85a30", boxShadow: "0 1px 2px rgba(20,20,22,0.10)" };','const g = "text-[#eee] max-w-[170px]";','const h = "bg-black/30 text-zinc-400/50 border-white/10";','const j = "w-2 bg-white/45 hover:bg-white/70";',`const i = "${L} w-1/2";`].join(`
|
|
2
|
+
`),l=A(t,"sample.tsx",e).map(b=>`${b.kind}:${b.text}`).sort(),h=["bw:bg-black/30","bw:bg-white/45","bw:border-white/10","bw:hover:bg-white/70","bw:md:text-white","colour-value:#d85a30","colour-value:rgba(","colour-value:text-[#eee]","palette:hover:bg-amber-100","palette:text-zinc-400","palette:text-zinc-400/50","size-value:max-w-[170px]","size-value:py-[7px]","size-value:text-[13px]"];i("the scanner is CALIBRATED — it reads code, not comments, and not tokens",JSON.stringify(l)===JSON.stringify(h),`the scanner has drifted. It must (1) never read a comment — the card number #319 and the contrast table are not colours; (2) read var(--tok, #fallback) as the TOKEN it is, at any nesting; (3) decide colour-vs-size from the VALUE, so text-[13px] is a size and text-[#eee] is a colour; (4) ignore z-[…] and grid-cols-[…], which are neither; (5) see THROUGH an opacity modifier — bg-black/30 is still a hard-coded black — without mistaking the slash inside ${L} or the one in w-1/2 for one. Got: ${JSON.stringify(l)}`)}const{source:u,editorRoots:o,publishedRoots:p,customFields:f,population:r}=K(t,a,s),{floors:c}=s;i(`the editor entries were found (${o.length}, at least ${c.editorRoots})`,o.length>=c.editorRoots&&o.length>0,"the walk read no editor entry, so every rule below would be an assertion over an empty list and would pass for the wrong reason"),i(`the published entries were found (${p.length}, at least ${c.publishedRoots})`,p.length>=c.publishedRoots&&p.length>0,"without them every component would look editor-only and the population would balloon"),i(`the panel population is ${r.length} files (at least ${c.population})`,r.length>=c.population&&r.length>0,"a population that small is not a clean repository, it is a scan that read nowhere — something in module resolution broke"),i(`The old editor library custom fields draw ${f.length} panel files (at least ${c.customFields})`,f.length>=c.customFields,"rule B is what covers every settings field a registry reaches; if it stops matching, the field components leave the population in silence");for(const e of s.anchors??[])i(`${e} is panel chrome, and in the population`,r.includes(e),"it is missing — the walk has stopped reaching the editor");for(const e of s.drawnByAField??[])i(`${e} is drawn by an old editor library custom field, and in the population`,r.includes(e),'it belongs to the panel, but its NAME does not say "panel" — rule B has stopped working');for(const e of s.opacitySites??[])i(`${e} carries a colour behind an opacity modifier, and stays in the population`,r.includes(e),"it is one of the sites this rule was once blind to; if it has dropped out, the rule is green while ignoring a defect it was written to find");for(const e of s.shopperFacing??[])i(`${e} paints a shopper's page, and is not in the population`,!r.includes(e),"it is not this rule's business, and taking it would make this a storefront gate wearing a panel gate's name");const w=new Map(u.map(e=>[e.path,e.text])),n=new Map;for(const e of r){const l=A(t,e,w.get(e)??"");l.length&&n.set(e,l)}const m=[...n.values()].reduce((e,l)=>e+l.length,0),x=new Map(s.allow.map(e=>[e.file,e])),g=r.reduce((e,l)=>e+(w.get(l)??"").length,0);i(`the scan read ${g} bytes of panel source (at least ${c.bytes})`,g>=c.bytes&&g>0,'that is not the editor. Every "no literals found" below would be meaningless.'),i("the scanner found literals while the allow list still lists files",m>0||s.allow.length===0,"the scanner found nothing anywhere while the allow list still lists files. A scan that reads nothing looks exactly like a clean codebase.");{const e=[];for(const[l,h]of[...n].sort()){if(x.has(l))continue;const b=h.slice(0,6).map($=>` ${l}:${$.line} ${$.text}`);e.push(` ${l} — ${h.length} literal${h.length===1?"":"s"}
|
|
3
3
|
`+b.join(`
|
|
4
4
|
`)+(h.length>b.length?`
|
|
5
|
-
…and ${h.length-b.length} more`:""))}
|
|
5
|
+
…and ${h.length-b.length} more`:""))}i("NO panel file outside the list carries a colour or size literal",e.length===0,`Hard-coded colour/size literals in editor PANEL components.
|
|
6
6
|
|
|
7
7
|
The panel's colours and sizes come from tokens — the --sf-* custom properties the editor's sheets define (efficient-easel/screen.css, and the builder's components/storefront-editor.css) and the .es-* classes efficient-easel draws. A literal here is a private copy of one step of that scale: it does not move when the scale moves, and nothing says it is wrong until somebody looks at the panel beside the campaign designer.
|
|
8
8
|
|
|
@@ -10,11 +10,11 @@ Spell it as a token. If it genuinely cannot be one, add a line to the allow list
|
|
|
10
10
|
|
|
11
11
|
`+e.join(`
|
|
12
12
|
|
|
13
|
-
`))}{const e=[];for(const l of s.allow){const h=
|
|
13
|
+
`))}{const e=[];for(const l of s.allow){const h=n.get(l.file);if(!r.includes(l.file)){e.push(` ${l.file} is on the list but is no longer a panel component (the editor does not reach it, and no old editor library custom field draws it). Delete the line.`);continue}if(!h){e.push(` ${l.file} is CLEAN now — 0 literals, the line still allows ${l.count}. Delete the line: that is what "done" looks like.`);continue}if(h.length>l.count){const b=h.slice(l.count).map($=>`${$.text} @${$.line}`);e.push(` ${l.file} has ${h.length} literals, the line allows ${l.count}. A NEW literal went into a file we already tolerate — this is exactly how the count creeps back. Spell it as a token; do not raise the number. (e.g. ${b.slice(0,3).join(", ")})`)}h.length<l.count&&e.push(` ${l.file} is down to ${h.length} literals from ${l.count}. Good — now finish it: either clear the rest and delete the line, or lower the count in this same PR. A line that allows more than the file spends goes on excusing a debt that has been paid.`)}i(`every allow line still describes its file — counts pinned BOTH ways (${s.allow.length} lines)`,e.length===0,`the allow list is out of date:
|
|
14
14
|
|
|
15
15
|
${e.join(`
|
|
16
16
|
|
|
17
|
-
`)}`)}{const e=[],l=new Set;for(const h of s.allow)l.has(h.file)&&e.push(` ${h.file} is listed twice`),l.add(h.file),h.count<1&&e.push(` ${h.file} pins count ${h.count} — a line allowing nothing is a deleted line`),h.kind==="KEEP"&&h.why.trim().length<20&&e.push(` ${h.file} is a KEEP with no design behind it. A KEEP says why the literal is RIGHT; if you cannot say that, it is an UNTIL.`),h.kind==="UNTIL"&&h.until.trim().length<20&&e.push(` ${h.file} is an UNTIL with no expiry. A reason explains why a line is here today; an expiry is what GETS IT OUT. Say what has to land.`);
|
|
17
|
+
`)}`)}{const e=[],l=new Set;for(const h of s.allow)l.has(h.file)&&e.push(` ${h.file} is listed twice`),l.add(h.file),h.count<1&&e.push(` ${h.file} pins count ${h.count} — a line allowing nothing is a deleted line`),h.kind==="KEEP"&&h.why.trim().length<20&&e.push(` ${h.file} is a KEEP with no design behind it. A KEEP says why the literal is RIGHT; if you cannot say that, it is an UNTIL.`),h.kind==="UNTIL"&&h.until.trim().length<20&&e.push(` ${h.file} is an UNTIL with no expiry. A reason explains why a line is here today; an expiry is what GETS IT OUT. Say what has to land.`);i("every allow line carries an EXPIRY, not just a reason",e.length===0,`allow lines are malformed:
|
|
18
18
|
|
|
19
19
|
${e.join(`
|
|
20
|
-
`)}`)}{const e=
|
|
20
|
+
`)}`)}{const e=n.size,l=r.length-e,h=r.length?Math.round(l/r.length*100):0,b=s.allow.filter(y=>y.kind==="KEEP").length,$=s.allow.filter(y=>y.kind==="UNTIL").length,z=[...n.values()].flat().filter(y=>y.kind!=="size-value").length;i(`PROGRESS — panel token coverage: ${l}/${r.length} files clean (${h}%) · ${m} literals left in ${e} file${e===1?"":"s"} (${z} colour + ${m-z} size) · allow: ${b} KEEP + ${$} UNTIL`,r.length>0);for(const[y,T]of[...n].sort((k,v)=>v[1].length-k[1].length)){const k=T.filter(v=>v.kind!=="size-value").length;i(`PROGRESS ${String(k).padStart(3)} colour ${String(T.length-k).padStart(3)} size ${y}`,!0)}}return d()}export{R as blankVarFallbacks,C as classifyClassToken,M as panelColourTokens,K as panelPopulation,A as scanSource};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import{ruleChecks as
|
|
2
|
-
`),n=[];return s.forEach((g,a)=>{if(!/border-(top|bottom|left|right)[a-z-]*\s*:[^;]*\bsolid\b/.test(g))return;let $=0,c="?";for(let i=a-1;i>=0;i-=1)if($+=(s[i].match(/\}/g)??[]).length-(s[i].match(/\{/g)??[]).length,$<0){c=s[i].split("{")[0].trim();let h=i-1;for(;h>=0&&s[h].trim().endsWith(",");)c=`${s[h].trim()} ${c}`,h-=1;break}n.push({line:a+1,selector:c,decl:g.trim()})}),n}const y=r=>r.split(/[\s,+>~]/)[0].trim(),
|
|
3
|
-
`),l=j(t);n("the census finds a directional solid border, with its whole multi-line selector",l.length===1&&l[0].selector===".a, .b + .c"&&y(l[0].selector)===".a",JSON.stringify(l));const d=["zinc","200"].join("-"),f=[["a utility",`<div className="${e("t")} border-${d}" />`,"utility"],["a style object",`style={{ ${["border","Top"].join("")}: "1px solid var(--sf-line)" }}`,"style object"],["CSS in a string",`const s = "${e("left")}: 1px solid var(--es-divider)";`,"css in a string"],["a border in the storefront's own ink",`<div className="${e("t")} border-line" />`,null],["a radius",`<div className="${e("t")} border-${d} rounded" style={{ borderRadius: 4 }} />`,null]];for(const[u,o,p]of f)n(`the sweep reads ${u} as ${p??"no hairline"}`,E(o)===p,o)}const i=[];for(const e of s.panelSheets??[]){const t=r.find(o=>o.path===e)?.text??"",l=j(t);n(`${e} was read and parsed`,t.length>1e4&&l.length>0,`${t.length} bytes, ${l.length} directional border(s)`),i.push(...l.map(o=>({...o,sheet:e})));const f=(t.replace(/\/\*[\s\S]*?\*\//g,"").match(/\[class\*="
|
|
4
|
-
${o} {`);if(!n(`the allowed full-bleed rule is still in ${e}`,p>=0,o))continue;const v=u.slice(p,u.indexOf("}",p));for(const[w,x]of[["left","--es-insp-pad-x"],["right","--es-insp-pad-end"]])n(`the full-bleed rule cancels the panel's ${w} padding, so it reaches the edge`,new RegExp(`margin-${w}:\\s*calc\\(var\\(${x}\\)\\s*\\*\\s*-1\\)`).test(v),"inset, this is the line the owner rejected — full bleed is the exemption"),n(`…and puts that ${w} padding back inside, so the words stay on the rows' edge`,new RegExp(`padding-${w}:\\s*var\\(${x}\\)`).test(v))}}for(const e of s.fullBleed??[])n(`the full-bleed selector is an ALLOWED entry: ${e}`,e in a);if(s.panelSheets?.length){const e=i.filter(t=>!
|
|
1
|
+
import{ruleChecks as k}from"./rule.js";function j(r){const s=r.split(`
|
|
2
|
+
`),n=[];return s.forEach((g,a)=>{if(!/border-(top|bottom|left|right)[a-z-]*\s*:[^;]*\bsolid\b/.test(g))return;let $=0,c="?";for(let i=a-1;i>=0;i-=1)if($+=(s[i].match(/\}/g)??[]).length-(s[i].match(/\{/g)??[]).length,$<0){c=s[i].split("{")[0].trim();let h=i-1;for(;h>=0&&s[h].trim().endsWith(",");)c=`${s[h].trim()} ${c}`,h-=1;break}n.push({line:a+1,selector:c,decl:g.trim()})}),n}const y=r=>r.split(/[\s,+>~]/)[0].trim(),O=(r,s)=>s in r||y(s)in r,L=/\bzinc-|--sf-line\b|--sf-divider\b|--sf-input-border\b|--sf-chip-bg\b|--es-line\b|--es-divider\b|--sf-text-secondary\b/,S=[["utility",/(^|["'`\s])border-(t|b|l|r)($|["'`\s])/],["style object",/border(Top|Bottom|Left|Right)\s*:/],["css in a string",/border-(top|bottom|left|right)\s*:/]];function E(r){return/radius/i.test(r)||!L.test(r)?null:S.find(([,s])=>s.test(r))?.[0]??null}function T(r,s){const{check:n,report:g}=k("panel divider lines"),a=s.allowed??{},$=s.pendingElsewhere??{},c=s.allowedTsx??[];{const e=u=>["border",u].join("-"),t=[".a,",".b + .c {",` ${e("top")}: 1px solid red;`,"}",`.d { ${e("radius")}: 4px; }`].join(`
|
|
3
|
+
`),l=j(t);n("the census finds a directional solid border, with its whole multi-line selector",l.length===1&&l[0].selector===".a, .b + .c"&&y(l[0].selector)===".a",JSON.stringify(l));const d=["zinc","200"].join("-"),f=[["a utility",`<div className="${e("t")} border-${d}" />`,"utility"],["a style object",`style={{ ${["border","Top"].join("")}: "1px solid var(--sf-line)" }}`,"style object"],["CSS in a string",`const s = "${e("left")}: 1px solid var(--es-divider)";`,"css in a string"],["a border in the storefront's own ink",`<div className="${e("t")} border-line" />`,null],["a radius",`<div className="${e("t")} border-${d} rounded" style={{ borderRadius: 4 }} />`,null]];for(const[u,o,p]of f)n(`the sweep reads ${u} as ${p??"no hairline"}`,E(o)===p,o)}const i=[];for(const e of s.panelSheets??[]){const t=r.find(o=>o.path===e)?.text??"",l=j(t);n(`${e} was read and parsed`,t.length>1e4&&l.length>0,`${t.length} bytes, ${l.length} directional border(s)`),i.push(...l.map(o=>({...o,sheet:e})));const f=(t.replace(/\/\*[\s\S]*?\*\//g,"").match(/\[class\*="_OldFields[^"]*"\][^{]*\{/g)??[]).length;n(`${e} reaches for no old editor library field wrapper`,f===0,`${f} rule(s) still select \`[class*="_OldFields…"]\` — the rows are \`.es-insp-row\` now`);const u=t.replace(/,\s*\n\s*/g,", ");for(const o of s.fullBleed??[]){if(!(o in a))continue;const p=u.indexOf(`
|
|
4
|
+
${o} {`);if(!n(`the allowed full-bleed rule is still in ${e}`,p>=0,o))continue;const v=u.slice(p,u.indexOf("}",p));for(const[w,x]of[["left","--es-insp-pad-x"],["right","--es-insp-pad-end"]])n(`the full-bleed rule cancels the panel's ${w} padding, so it reaches the edge`,new RegExp(`margin-${w}:\\s*calc\\(var\\(${x}\\)\\s*\\*\\s*-1\\)`).test(v),"inset, this is the line the owner rejected — full bleed is the exemption"),n(`…and puts that ${w} padding back inside, so the words stay on the rows' edge`,new RegExp(`padding-${w}:\\s*var\\(${x}\\)`).test(v))}}for(const e of s.fullBleed??[])n(`the full-bleed selector is an ALLOWED entry: ${e}`,e in a);if(s.panelSheets?.length){const e=i.filter(t=>!O(a,t.selector)&&!O($,t.selector));n(`no unlisted directional border survives in a panel stylesheet (${i.length} censused)`,e.length===0,`${e.length} neither removed, allowed, nor owed to another card — delete it and let the rhythm tokens separate, or add it to the allow-list with a reason if it is a control edge:
|
|
5
5
|
`+e.map(t=>`${t.sheet}:${t.line} ${t.selector} — ${t.decl}`).join(`
|
|
6
6
|
`))}const h=e=>i.some(t=>t.selector===e||y(t.selector)===e);for(const[e,t]of Object.entries(a))n(`ALLOWED entry ${e} still names a real rule (${t.slice(0,48)}…)`,h(e),"the rule is gone: delete this entry with it");for(const[e,t]of Object.entries($))n(`PENDING entry ${e} is still owed — ${t}`,h(e),"that card has landed and the rule is gone: delete this entry");const b=r.filter(e=>/\.tsx?$/.test(e.path));n(`the repository's own TS/TSX files were swept (${b.length}, at least ${s.minFiles})`,b.length>=s.minFiles);const m=[];for(const e of b)e.text.split(`
|
|
7
7
|
`).forEach((t,l)=>{const d=E(t);d&&(c.some(f=>f.file===e.path&&t.includes(f.util))||m.push(`${e.path}:${l+1} (${d}) ${t.trim().slice(0,80)}`))});n("no editor panel file draws an unlisted directional border",m.length===0,`${m.length} found:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{isRuleSource as
|
|
1
|
+
import{isRuleSource as T,ruleChecks as G}from"./rule.js";import{readRules as _}from"./support/css-rules.js";import{stripComments as V}from"./support/css-source.js";import{applicable as q,census as J,deriveShapes as L,derefVars as Q,importsOf as B,readVars as U,resolve as D,splitDecls as O}from"./support/panel-select-cascade.js";const y="--sf-select-arrow",z=["background-image","background-size","background-repeat","background-position"],I=l=>/(^|[\s,>+~(])select(?![\w-])/.test(l);function X(l,a){return typeof a!="string"?{sheet:a,ours:!1}:{sheet:l.find(o=>o.path===a),ours:!0}}const Y=l=>l.filter(a=>/\.(tsx?|mts)$/.test(a.path)&&!T(a.path)),R=(l,a)=>l===`@/${a}`||l.endsWith(`/${a}`)||l===`./${a.split("/").pop()}`;function ne(l,a,o,n){const k=new Set;for(const S of o){const w=a.find(r=>r.path===S);if(w)for(const r of B(l,w))r.endsWith(".css")&&!R(r,n)&&!r.startsWith("@/")&&!r.startsWith(".")&&k.add(r)}return[...k].sort()}function oe(l,a,o){const{check:n,report:k}=G("panel one arrow"),{sheet:S,ours:w}=X(a,o.panelSheet),r=S?.path??(typeof o.panelSheet=="string"?o.panelSheet:o.panelSheet.path),{population:g,helperDeclared:K}=J(l,Y(a),o.selectHelper),N=g.filter(e=>e.engineDrawn),p=g.filter(e=>!e.engineDrawn);a.some(e=>e.path===o.selectHelper.file)&&n(`${o.selectHelper.file} declares the house \`select\` helper`,K,"the census has no helper to resolve (B) against"),n(`the panel draws house-drawn selects (${p.length}, at least ${o.houseDrawnFloor})`,p.length>=o.houseDrawnFloor&&(p.length>0||o.houseDrawnFloor===0),`${p.length} found: ${p.map(e=>`${e.file}:${e.line}`).join(", ")||"(none)"} — with none, this card's rows do not exist and §3 passes empty`);const b=V(S?.text??""),$=U(b);n(`${r} was read`,b.length>1e4,`${b.length} bytes`);const x=_(b),i=L(g,b),W=i.reduce((e,t)=>e+t.rows,0);n(`every house-drawn select is in exactly one shape, and no engine-drawn field is in any (${i.map(e=>e.name).join(", ")})`,W===p.length,`shapes hold ${W} row(s), the census found ${p.length} house-drawn`);const u=new Map,F=new Map,v=[],E=[];for(const e of i){const t=q(x,e,r,0,"rest"),s=q(x,e,r,0,"hover");v.push(...t.unreadable,...s.unreadable),E.push(...s.undecided);const c={appearance:D(t.applied,"appearance",$).value};for(const d of z)c[d]=D(t.applied,d,$).value;c["@from"]=D(t.applied,"background-image",$).from,u.set(e.name,c);const m={};for(const d of z)m[d]=D(s.applied,d,$).value;F.set(e.name,m)}const f=(e,t)=>e.get(t.name);n("every rule that can reach a panel select was understood",v.length===0,`could not parse: ${[...new Set(v)].slice(0,4).join(" · ")}${v.length>4?` (+${v.length-4} more)`:""} — a rule this model skips is a rule it lies about`);for(const e of i){const t=f(u,e);n(`${e.name}: the browser draws no arrow of its own (appearance: none)`,t.appearance==="none",`appearance resolves to \`${t.appearance}\` on ${e.rows} row(s) — the platform arrow is still painted, so an added image would sit beside it`)}for(const e of i){const t=f(u,e);n(`${e.name}: an arrow IS drawn`,/url\(/.test(t["background-image"]),`background-image resolves to \`${t["background-image"]}\` on ${e.rows} row(s) — a row with no arrow reads as a stylesheet that failed to load, and taking the arrow away undoes the owner's 2026-09-01 ruling`)}const M=f(u,i[0]);for(const e of["appearance",...z]){const t=i.filter(s=>f(u,s)[e]!==M[e]);n(`every shape resolves the same \`${e}\``,t.length===0,`${i[0].name} (${i[0].rows} row(s)) says \`${M[e].slice(0,44)}\`, but `+t.map(s=>`${s.name} (${s.rows} row(s)) says \`${f(u,s)[e].slice(0,44)}\``).join("; "))}const A=e=>e["background-repeat"]!=="no-repeat"||e["background-size"]==="auto";for(const e of i){const t=f(u,e);n(`${e.name}: the arrow is never tiled (66397)`,!A(t),`repeat=${t["background-repeat"]} size=${t["background-size"]} — a full-size tile repeats ~2.5x across a 248px row and draws a bar of triangles`)}for(const e of i){const t=f(F,e);n(`${e.name}: the arrow is never tiled under the pointer either (66397)`,/url\(/.test(t["background-image"])&&!A(t),`hovered image=${t["background-image"].slice(0,40)} repeat=${t["background-repeat"]} size=${t["background-size"]} — this is the dark bar with three triangles, in the state it was filed in`)}const H=E.filter(e=>O(e.decls).some(t=>t.prop==="background"||z.includes(t.prop)));if(n("no rule this model cannot judge decides a hovered arrow property",H.length===0,`${[...new Set(H.map(e=>`@media ${e.media} { ${e.selector} }`))].join(" · ")} — an unjudged media query holding one of these properties makes (e) a guess`),w){const e=x.flatMap(t=>t.selector.split(",").map(s=>s.trim()).filter(s=>I(s)).filter(()=>O(t.decls).some(s=>s.prop==="background")).map(s=>t.media?`${t.media} { ${s} }`:s));n("no rule that names the `select` element uses the `background` shorthand",e.length===0,`${e.join(" · ")} — a shorthand resets background-size/-repeat/-position/-image; set \`background-color\` instead (card 66397)`)}if(o.editorEntries!==void 0){const e=new Set;for(const c of o.editorEntries){const m=a.find(h=>h.path===c),d=m?B(l,m):[];n(`${c} loads ${r}`,d.some(h=>R(h,r)),m?"§3 resolves the panel stylesheet's cascade, and this editor does not load it":"the entry is not among the files");for(const h of d)h.endsWith(".css")&&!R(h,r)&&e.add(h)}const t=[],s=[];for(const c of e){const d=(c.startsWith("@/")?a.find(h=>h.path===c.slice(2))?.text:void 0)??o.loadedSheets?.[c]??null;if(d===null){s.push(c);continue}for(const h of _(V(d)))for(const C of h.selector.split(","))I(C)&&t.push(`${c}: ${C.trim()}`)}n(`every other stylesheet the editors load was read (${e.size})`,s.length===0,`could not resolve ${s.join(", ")} — a sheet this rule cannot open is a cascade it cannot rule out`),n("no other stylesheet the editors load has a rule naming the `select` element",t.length===0,`${t.slice(0,4).join(" · ")}${t.length>4?` (+${t.length-4} more)`:""} — §3 resolves ${r} alone, so this rule is invisible to every answer above`)}const j=Q($.get(y)??"",$);if(w){const e=x.flatMap(t=>O(t.decls)).filter(t=>t.prop===y);n(`${r} declares \`${y}\` exactly once, as an image`,e.length===1&&/^url\(/.test(j),`${e.length} declaration(s), value \`${j.slice(0,60)||"(none)"}\` — the one arrow needs one definition`)}for(const e of i){const t=f(u,e)["background-image"];n(`${e.name}: the arrow it draws is \`var(${y})\`, glyph for glyph`,j!==""&&t===j,`resolves \`${t.slice(0,60)}\` — a redrawn arrow is the SS seat's call, made once in \`${y}\`, not in a rule of its own`)}const P=p.flatMap(e=>e.classes.filter(t=>/^(appearance-|bg-(none|\[|gradient|linear|radial|conic))/.test(t)).map(t=>`${e.file}:${e.line} \`${t}\``));return n("no panel select decides its arrow with a utility class",P.length===0,`${P.join(", ")} — §3 reads only ${r}`),n(`the population came from the program, not from a number typed here (${g.length}, at least ${o.populationFloor})`,g.length>=o.populationFloor&&g.length>0,`${g.length} dropdowns found (${p.length} house-drawn, ${N.length} engine-drawn) — a census that collapses to a handful means the walk stopped reading`),k()}export{Y as censusFiles,ne as editorPackageSheets,I as namesSelectElement,oe as panelOneArrow,X as panelSheetOf};
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import{ruleChecks as
|
|
1
|
+
import{ruleChecks as A}from"./rule.js";import{builderModuleSpec as T}from"./support/ts-source.js";import{isRegistryPath as F,registryFiles as _}from"./support/registry-source.js";import{isDocumentPath as C}from"./support/document-folder.js";const R="lib/document/controls.tsx",I={},N={},E=["boxShareField","edgePad","placementField","CoordsField","textList","segmented","select","slider"],z=/sf-field-label|<Label>/,G=/<[A-Z][A-Za-z0-9]*Icon\s*\/>/,B=s=>s.startsWith("//")||s.startsWith("*")||s.startsWith("/*");function M(s,o){const e=s.indexOf("(",o);if(e===-1)return"";let b=0;const c=[];let h=e+1;for(let d=e;d<s.length;d+=1){const i=s[d];if(i==="("||i==="["||i==="{")b+=1;else if(i===")"||i==="]"||i==="}"){if(b-=1,b===0){c.push(s.slice(h,d));break}}else if(i===","&&b===1&&(c.push(s.slice(h,d)),h=d+1,c.length===2))break}return c[1]??""}function U(s,o){const e=new RegExp(`(?:^|[^.\\w])${o}\\s*(?:<[^()]*?>)?\\s*\\(|\\bcontrols\\.${o}\\s*(?:<[^()]*?>)?\\s*\\(`).exec(s);return e?e.index+e[0].length-1:s.indexOf("(")}function J(s,o){const e=s.slice(0,o);return e.includes("//")?!1:(e.match(/"/g)??[]).length%2===0&&(e.match(/`/g)??[]).length%2===0&&(e.match(/'/g)??[]).length%2===0}const v=T("lib/document/controls"),D=(s,o)=>new RegExp(`import \\{[^}]*\\b${o}\\b[^}]*\\} from "${v}"`).test(s)||new RegExp(`import \\* as controls from "${v}"`).test(s);function k(s,o,e){const b=new RegExp(`(^|[^.\\w])${o}\\s*(<[^()]*?>)?\\s*\\(|\\bcontrols\\.${o}\\s*(<[^()]*?>)?\\s*\\(`,"g"),c=new RegExp(`^(export )?function ${o}(<[^>]*>)?\\(`),h=[];let d=0;for(const i of s){const u=i.text.split(`
|
|
2
2
|
`),m=u.join(`
|
|
3
|
-
`);u.forEach((p,g)=>{const w=p.trim();if(
|
|
4
|
-
`).length+U(p,o));
|
|
3
|
+
`);u.forEach((p,g)=>{const w=p.trim();if(B(w)||c.test(w))return;b.lastIndex=0;const $=b.exec(p);if(!$||!J(p,$.index))return;d+=1;const O=M(m,u.slice(0,g).join(`
|
|
4
|
+
`).length+U(p,o));G.test(O)||/<FieldGlyph\b/.test(O)||e.some(t=>t.test(O))||h.push(`${i.path}:${g+1} ${w.slice(0,80)}`)})}return{bare:h,total:d}}function K(s){const o={};for(const e of s){const b=e.text.split(`
|
|
5
5
|
`);b.forEach((c,h)=>{if(!/className="sf-field"/.test(c))return;const d=b.slice(h,h+9).join(`
|
|
6
6
|
`);if(!z.test(d))return;const i=d.match(/sf-field-label[^>]*>([^<{][^<]*)</),u=d.match(/sf-field-label[^>]*>\{([^}]*)\}/),m=d.match(/<Label>([^<{][^<]*)</),p=d.match(/<Label>\{([^}]*)\}/),g=$=>$.trim()==="label"?"{label}":"{...}",w=i?i[1].trim():u?g(u[1]):m?m[1].trim():p?g(p[1]):"{...}";(o[e.path]??=[]).push(w)})}return o}function Z(s){const o=[];let e=0;for(const b of s){const c=b.text.split(`
|
|
7
7
|
`);c.forEach((h,d)=>{if(!/<SettingsField\b/.test(h))return;const i=[];let u=!1;for(let p=d;p<Math.min(d+40,c.length)&&!u;p+=1){let g=c[p];if(g=g.replace(/\/\*[\s\S]*?\*\//g," "),/\/\*/.test(g)&&(g=g.slice(0,g.indexOf("/*"))),/^\s*\*/.test(c[p]))continue;const w=g.indexOf("//");w!==-1&&(g=g.slice(0,w)),i.push(g),g.includes(">")&&(u=!0)}const m=i.join(`
|
|
8
|
-
`);/\blabel=/.test(m)&&(e+=1,!/\bicon=/.test(m)&&o.push(`${b.path}:${d+1} ${h.trim().slice(0,80)}`))})}return{seen:e,bare:o}}function X(s,o){const{check:e,report:b}=
|
|
8
|
+
`);/\blabel=/.test(m)&&(e+=1,!/\bicon=/.test(m)&&o.push(`${b.path}:${d+1} ${h.trim().slice(0,80)}`))})}return{seen:e,bare:o}}function X(s,o){const{check:e,report:b}=A("panel rows use the shared row"),c=o.exceptions??[],{floors:h}=o;{const t={path:"fixture.tsx",text:['import { slider, textList } from "@/lib/document/controls";','const a = { textList: () => controls.textList("Items", <ListIcon />, x) };','const b = slider("Thickness", 0, 10);','const c = slider("Gap", <GapIcon />, 0, 10);','// slider("In a comment", 0, 10) is not a row'].join(`
|
|
9
9
|
`)},n=k([t],"textList",[]),a=k([t],"slider",[]);e("the reader reads a namespaced call's own arguments, not the arrow's",n.total===1&&n.bare.length===0,JSON.stringify(n)),e("the reader flags a bare row whose neighbour has a glyph, and skips a comment",a.total===2&&a.bare.length===1&&a.bare[0].startsWith("fixture.tsx:3"),JSON.stringify(a));const f={path:"wrapped.tsx",text:['const a = { shape: withShowWhen(segmented("Shape", <SquareIcon />, opts), rule) };','const b = { size: withShowWhen(segmented("Size", opts), rule) };'].join(`
|
|
10
|
-
`)},r=k([f],"segmented",[]);e("the reader reads a wrapped call's own arguments: the glyphed row passes, the bare one is caught",r.total===2&&r.bare.length===1&&r.bare[0].startsWith("wrapped.tsx:2"),JSON.stringify(r))}const d=new Map(s.map(t=>[t.path,t])),i=s.find(t=>
|
|
11
|
-
`).forEach((x,l)=>{const y=x.trim();
|
|
10
|
+
`)},r=k([f],"segmented",[]);e("the reader reads a wrapped call's own arguments: the glyphed row passes, the bare one is caught",r.total===2&&r.bare.length===1&&r.bare[0].startsWith("wrapped.tsx:2"),JSON.stringify(r))}const d=new Map(s.map(t=>[t.path,t])),i=s.find(t=>C(t.path,"controls.tsx"));e(o.writesBuilders?`read ${R}, where the builders are declared`:`${R} is not among this repository's files (it calls the builders, it does not declare them)`,!!i===o.writesBuilders);const u=_(s),m=o.holdsRegistry!==!1;e(m?`read this repository's share of the block registry (${u.length} files)`:`this repository holds no block registry, as it says (${u.length} registry files handed in)`,m?u.length>0:u.length===0);const p=s.filter(t=>/^components\/[^/]+\.tsx$/.test(t.path)),g=s.filter(t=>/^scripts\/[^/]+\.tsx$/.test(t.path)),w=[...u,...i?[i]:[],...p],$=t=>C(t.path,"controls.tsx");{const t=w.filter(r=>$(r)||D(r.text,"toggle")),n=t.filter(r=>$(r)||F(r.path));e("only the known files use the toggle builder",t.length===n.length&&(!o.writesBuilders||n.some($))&&(!m||n.some(r=>F(r.path))),t.map(r=>r.path).join(" · "));const a=[];let f=0;for(const r of n)r.text.split(`
|
|
11
|
+
`).forEach((x,l)=>{const y=x.trim();B(y)||/classList\.toggle/.test(x)||/^export function toggle\(/.test(y)||/(^|[^.\w])toggle\(/.test(x)&&(f+=1,!(G.test(x)||/<FieldGlyph\b/.test(x))&&a.push(`${r.path}:${l+1} ${y.slice(0,80)}`))});e("every toggle() row carries a glyph",a.length===0,`
|
|
12
12
|
${a.join(`
|
|
13
|
-
`)}`),e(`…and there are rows to check (${f} toggle() call sites, at least ${h.toggle})`,f>=h.toggle,"the scan is reading nothing")}const O=[{builder:"textList",inControls:!1,accept:[/TICKER_ITEMS_ROW\.icon/],name:"every textList() row carries a glyph"},{builder:"segmented",inControls:!0,accept:[/\bnoGlyph\(/],name:"every segmented() row carries a glyph (or a ruled noGlyph)"},{builder:"select",inControls:!0,accept:[/\btextKindGlyph\(/,/\bnoGlyph\(/],name:"every select() row carries a glyph (or a ruled noGlyph)"},{builder:"slider",inControls:!0,accept:[/\bnoGlyph\(/],name:"every slider() row carries a glyph"}];for(const t of O){const n=[...u,...t.inControls&&i?[i]:[],...g].filter(r=>t.inControls&&$(r)||F(r.path)||
|
|
13
|
+
`)}`),e(`…and there are rows to check (${f} toggle() call sites, at least ${h.toggle})`,f>=h.toggle,"the scan is reading nothing")}const O=[{builder:"textList",inControls:!1,accept:[/TICKER_ITEMS_ROW\.icon/],name:"every textList() row carries a glyph"},{builder:"segmented",inControls:!0,accept:[/\bnoGlyph\(/],name:"every segmented() row carries a glyph (or a ruled noGlyph)"},{builder:"select",inControls:!0,accept:[/\btextKindGlyph\(/,/\bnoGlyph\(/],name:"every select() row carries a glyph (or a ruled noGlyph)"},{builder:"slider",inControls:!0,accept:[/\bnoGlyph\(/],name:"every slider() row carries a glyph"}];for(const t of O){const n=[...u,...t.inControls&&i?[i]:[],...g].filter(r=>t.inControls&&$(r)||F(r.path)||D(r.text,t.builder)),{bare:a,total:f}=k(n,t.builder,t.accept);e(t.name,a.length===0,`
|
|
14
14
|
${a.join(`
|
|
15
|
-
`)}`),e(`…and the ${t.builder} scan actually read rows (${f} call sites in ${n.length} files, at least ${h[t.builder]})`,f>=h[t.builder])}{const t=K(w);for(const l of c)e(`the exception still names a real row — ${l.label}`,(t[l.file]??[]).includes(l.label),`${l.file} no longer draws it`);const n={};for(const[l,y]of Object.entries(t)){const S=y.filter(L=>!c.some(j=>j.file===l&&j.label===L));S.length&&(n[l]=S)}const a=l=>l.slice().sort(),f=[];for(const[l,y]of Object.entries(n)){const S=I[l];if(!S){f.push(`${l} — hand-rolls ${y.length} row(s) and is not in PENDING`);continue}const L=a(y),j=a(S);(L.length!==j.length||L.some((W
|
|
15
|
+
`)}`),e(`…and the ${t.builder} scan actually read rows (${f} call sites in ${n.length} files, at least ${h[t.builder]})`,f>=h[t.builder])}{const t=K(w);for(const l of c)e(`the exception still names a real row — ${l.label}`,(t[l.file]??[]).includes(l.label),`${l.file} no longer draws it`);const n={};for(const[l,y]of Object.entries(t)){const S=y.filter(L=>!c.some(j=>j.file===l&&j.label===L));S.length&&(n[l]=S)}const a=l=>l.slice().sort(),f=[];for(const[l,y]of Object.entries(n)){const S=I[l];if(!S){f.push(`${l} — hand-rolls ${y.length} row(s) and is not in PENDING`);continue}const L=a(y),j=a(S);(L.length!==j.length||L.some((P,W)=>P!==j[W]))&&f.push(`${l} — found [${L.join(" · ")}] but PENDING says [${j.join(" · ")}]`)}e("no NEW hand-rolled settings row",f.length===0,`
|
|
16
16
|
${f.join(`
|
|
17
17
|
`)}`);const r=Object.keys(I).filter(l=>!n[l]);e("no PENDING entry has outlived its subject",r.length===0,r.join(" · "));const x=Object.values(n).reduce((l,y)=>l+y.length,0);e("the hand-rolled rows are GONE — the count is zero",x===0,`${x}`),e("…and no file is left hand-rolling one",Object.keys(I).length===0,Object.keys(I).join(" · ")),e(`…and the rulings are exactly ${o.rulings} (a new one is argued in review, not added)`,c.length===o.rulings&&c.every(l=>l.why.trim().length>40),`${c.length}`),e("…and BlogSource is not among them, because its row is gone",!c.some(l=>l.file.endsWith("BlogSource.tsx")))}{const t=Object.values(N).reduce((n,a)=>n+a,0);if(e("every builder is finished — nothing left to count",t===0,`${t}`),e("…and the emptiness is because FOUR builders are done, not because the list was cleared",E.length===8&&["textList","segmented","select","slider"].every(n=>E.includes(n)),E.join(" · ")),e("…and a finished builder has left the list",E.every(n=>!(n in N)),E.join(" · ")),i){const n=Object.keys(N).filter(a=>!new RegExp(`(export )?function ${a}\\(`).test(i.text));e(`…and every builder it names is really declared in ${R}`,n.length===0,n.join(" · "))}}if(i){const t=i.text,n=t.indexOf("export function backgroundField("),a=n===-1?"":t.slice(n),f=a.slice(0,a.indexOf(`
|
|
18
18
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const DOCUMENT_FOLDERS: readonly ["lib/document"
|
|
1
|
+
export declare const DOCUMENT_FOLDERS: readonly ["lib/document"];
|
|
2
2
|
export declare const documentPaths: (rel: string) => string[];
|
|
3
3
|
export declare const isDocumentPath: (path: string, rel: string) => boolean;
|
|
4
|
-
export declare const DOCUMENT_FOLDER_SOURCE = "lib\\/
|
|
4
|
+
export declare const DOCUMENT_FOLDER_SOURCE = "lib\\/document";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const c=["lib/document"
|
|
1
|
+
const c=["lib/document"],e=t=>c.map(o=>`${o}/${t}`),n=(t,o)=>e(o).includes(t),s="lib\\/document";export{c as DOCUMENT_FOLDERS,s as DOCUMENT_FOLDER_SOURCE,e as documentPaths,n as isDocumentPath};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";import{createContext as e,useContext as t}from"react";const o=e(!1),s=()=>t(o);export{o as BoxTabPaneContext,s as useIsTabPane};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as o,Fragment as
|
|
1
|
+
"use client";import{jsx as o,Fragment as v,jsxs as j}from"react/jsx-runtime";import{useEffect as i,useRef as T,useState as l}from"react";import F from"./Reel.js";import{BoxTabPaneContext as L}from"./BoxTabPaneContext.js";import{markedChildren as c}from"../../format/lib/marked-children.js";function R({children:u,className:d,style:b}){const s=T(null),[a,f]=l([]),[m,h]=l(0);i(()=>{const t=s.current;if(!t)return;const r=()=>{const p=c(t,"data-tab-label");f(p.map((x,g)=>x.dataset.tabLabel?.trim()||`Tab ${g+1}`))};r();const e=new MutationObserver(r);return e.observe(t,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["data-tab-label"]}),()=>e.disconnect()},[]);const n=a.length?Math.min(m,a.length-1):0;return i(()=>{const t=s.current;t&&c(t,"data-tab-label").forEach((r,e)=>{r.hidden=a.length>1&&e!==n})},[a,n]),j(v,{children:[a.length>1&&o(F,{slides:a.map(t=>({name:t,process:""})),active:n,shape:"tabs",tone:"surface",label:"Tabs",ref:t=>{t&&(t.onclick=r=>{const e=r.target?.closest?.("[data-idx]")?.getAttribute("data-idx");e!=null&&h(Number(e))})}}),o("div",{ref:s,"data-box-tabs":!0,className:d,style:b,children:o(L.Provider,{value:!0,children:u})})]})}export{R as default};
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
import { type
|
|
2
|
-
type
|
|
1
|
+
import { type PadValues } from "../../format/lib/content/section-padding.js";
|
|
2
|
+
import { type DividerSpacing, type DividerStyle } from "../../format/lib/sections/divider-style.js";
|
|
3
3
|
interface DividerProps {
|
|
4
|
-
spacing:
|
|
4
|
+
spacing: DividerSpacing;
|
|
5
5
|
contained: boolean;
|
|
6
6
|
style?: DividerStyle;
|
|
7
7
|
thickness?: number;
|
|
8
8
|
lengthPct?: number;
|
|
9
9
|
hideOnMobile?: boolean;
|
|
10
|
+
pad?: PadValues;
|
|
10
11
|
}
|
|
11
|
-
export default function Divider({ spacing, contained, style, thickness, lengthPct, hideOnMobile, }: DividerProps): import("react").JSX.Element;
|
|
12
|
+
export default function Divider({ spacing, contained, style, thickness, lengthPct, hideOnMobile, pad, }: DividerProps): import("react").JSX.Element;
|
|
12
13
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as
|
|
1
|
+
import{jsx as a}from"react/jsx-runtime";import y from"./BlockFrame.js";import{sectionPadAttrs as P}from"../../format/lib/content/section-padding.js";import{finiteNumber as u}from"../../format/lib/finite-number.js";import{DEFAULT_DIVIDER_STYLE as g,DIVIDER_SPACE_PX as p,STRIPE_BAND_HEIGHT_PX as N,parseDividerSpacing as _,parseDividerStyle as I,stripeBackground as D}from"../../format/lib/sections/divider-style.js";const E=1,T=100;function x(t,e,n){const o={};return!n&&typeof t=="number"&&t!==E&&(o.borderTopWidth=t),typeof e=="number"&&e<T&&(o.width=`${e}%`),Object.keys(o).length?o:void 0}const B={sm:"my-6",md:"my-12",lg:"my-20"},d=(...t)=>t.some(e=>u(e)!==void 0);function S(t,e,n){const o=n||d(e.top,e.topPhone),s=n||d(e.bottom,e.bottomPhone),l=d(e.left,e.right,e.leftPhone,e.rightPhone);if(!o&&!s&&!l)return null;const r=p[t],i=P(o?u(e.top)??r:void 0,s?u(e.bottom)??r:void 0,o?e.topPhone:void 0,s?e.bottomPhone:void 0,e.left,e.right,e.leftPhone,e.rightPhone),m={...i?.style};return o||(m.marginTop=r),s||(m.marginBottom=r),{className:i?.className??"",style:m}}function A({spacing:t,contained:e,style:n=g,thickness:o,lengthPct:s,hideOnMobile:l=!1,pad:r={}}){const i=I(n),m=_(t),c=D(i),h=x(o,s,!!c),f=S(m,r,i==="none"),b=[f?f.className:B[m],l?"max-[800px]:hidden":""].filter(Boolean).join(" ");return a(y,{contained:e,className:b,style:f?.style,children:i==="none"?null:c?a("hr",{className:"border-x-0 border-y border-line",style:{height:N,backgroundImage:c,...h}}):a("hr",{className:"border-0 border-t border-line",style:h})})}export{A as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as e,jsxs as
|
|
1
|
+
import{jsx as e,jsxs as le,Fragment as ae}from"react/jsx-runtime";import ie from"./BoxTabs.js";import{BoxTabPaneContext as ce,useIsTabPane as me}from"./BoxTabPaneContext.js";import fe from"./SiteGutterFrame.js";import{BoxSurfaceProvider as ue}from"./BoxSurfaceContext.js";import{BoxCellWidthContext as be}from"./BoxCellWidthContext.js";import{useInSiteHeader as de}from"./PhoneMenuTools.js";import{FRAME_BASE as H,FRAME_GUTTER as T}from"./BlockFrame.js";import{containerGapProps as xe}from"../../format/lib/content/container-gap.js";import{boxLayoutClasses as pe,boxBlockSpacingClass as $e,boxPhoneRowClasses as _,boxShareClasses as W,boxWrapClass as ye}from"../../format/lib/content/box-layout.js";import{BOX_CARD_PAD as s,BOX_OWNS_SIDES_CLASS as Ce,boxDarkenStyle as Se,boxPlacementClasses as _e,CARD_SHADOW_CLASS as he,isBackgroundBox as R}from"../../format/lib/content/box-background.js";import{sectionBorderStyle as ve}from"../../format/lib/content/borders.js";import{sectionPadAttrs as Pe}from"../../format/lib/content/section-padding.js";import{ON_MEDIA_INK_STYLE as ge}from"../../format/lib/content/ink.js";import{sizedBackground as h}from"../../format/lib/sized-image.js";const z={"--sf-site-gutter":"0px"},Ae="bg-cover bg-center bg-[image:var(--sf-box-bg)] max-[720px]:bg-[image:var(--sf-box-bg-p)]";function Ee({direction:r,label:G,gap:I,justify:L,align:i,wrap:M,share:v,phoneRow:P,blockSpacing:U,bgImage:c,bgImagePhone:g,darken:X,darkenStyle:K,placement:Y,padV2:q=!1,border:J,borderPhone:Q,padTop:m,padBottom:f,padTopPhone:u,padBottomPhone:b,padLeft:d,padRight:x,padLeftPhone:p,padRightPhone:$,contained:V=!0,fillHeight:A=!1,content:Z}){const t=R(c),E=de(),N=me(),B=[W(v),$e(U)].filter(Boolean).join(" "),ee=B?` ${B}`:"",k=["flex",r==="row"?`flex-row ${_(P)}`:"flex-col",ye(M),t?_e(Y??"center",r):pe(L,i)].join(" ")+ee,o=A||t?" h-full":"",y=t||E||q?"":" py-6",se=`${H}${y} ${T}${o}`,oe=E?o.trim():`w-full${y}${o}`,n=xe("Flex",I,r==="row"?"inline":"block"),w=e(Z,{className:`${k}${n.className}${o}`,style:n.style,minEmptyHeight:120}),D=r==="tabs"?e(ie,{className:`${k}${n.className}${o}`,style:n.style,children:w}):w,C=N?e(ce.Provider,{value:!1,children:D}):D,re=G?.trim()||(N?"":void 0),te={values:{top:m,bottom:f,topPhone:u,bottomPhone:b,left:d,right:x,leftPhone:p,rightPhone:$},frame:y?24:0},F=a=>e(fe,{contained:V,framedClass:se,fillClass:oe,columnClass:`${H} ${T}${o}`,tabLabel:re,pad:t?void 0:te,border:ve(J,Q),children:a});if(!t){const a=i===void 0||i==="stretch",ne=W(v)!==""&&(a||_(P)!==_(void 0));return F((r==="row"?ne:r==="column"&&a)?e(be.Provider,{value:!0,children:C}):C)}const l=Se(X,K),O=R(g),S=Pe(typeof m=="number"?m:s.desktop,typeof f=="number"?f:s.desktop,typeof u=="number"?u:s.phone,typeof b=="number"?b:s.phone,typeof d=="number"?d:s.side,typeof x=="number"?x:s.side,typeof p=="number"?p:s.sidePhone,typeof $=="number"?$:s.sidePhone),j=e("div",{className:`relative z-[1] ${Ce} ${S?.className??""}${A?" h-full":""}`.trimEnd(),style:l?{...S?.style,...z,...ge}:{...S?.style,...z},children:C});return F(e(ae,{children:le("div",{className:`relative isolate overflow-hidden ${he}${o}${O?` ${Ae}`:""}`,style:O?{"--sf-box-bg":h(c??""),"--sf-box-bg-p":h(g??"")}:{backgroundImage:h(c??""),backgroundSize:"cover",backgroundPosition:"center"},children:[l&&e("div",{className:"absolute inset-0 z-0",style:l,"aria-hidden":!0}),l?e(ue,{children:j}):j]})}))}export{Ee as default};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use client";import{jsx as c,jsxs as R}from"react/jsx-runtime";import{useCallback as
|
|
1
|
+
"use client";import{jsx as c,jsxs as R}from"react/jsx-runtime";import{useCallback as f,useEffect as h,useId as Oe,useRef as l,useState as k}from"react";import{markOverlayPortal as N}from"../../format/lib/document/overlay-portal.js";import Ce from"./Ticker.js";import{HeroSlideStyleContext as He}from"./HeroSlide.js";import Le from"./HeroArrows.js";import Ae from"./Reel.js";import{usePreviewTicker as Ne}from"./PreviewTickerContext.js";import{useReducedMotion as Ie}from"./useReducedMotion.js";import{CANVAS_ACCENT as Z}from"../../format/lib/canvas-accent.js";import{hasSectionHeight as Me,resolveSectionHeight as ee}from"../../format/lib/content/section-height.js";import{HEADER_HEIGHT_CSS as Pe}from"../lib/document/header-clearance.js";import{nextReel as De,normaliseHeroReelShape as Ve,reelShown as $e}from"../../format/lib/reel.js";import{arrowsShown as ze,arrowStep as Xe}from"../../format/lib/hero-arrows.js";import{swipeEnabled as Be,swipeStep as Ge}from"../../format/lib/hero-swipe.js";import{videoControlShown as je,videoHeld as Ye}from"../../format/lib/hero-video-control.js";import{HERO_SLIDER_GOTO_EVENT as I}from"efficient-easel/draw";import{say as te}from"../../format/lib/editor-words.js";import{markedChildren as re}from"../../format/lib/marked-children.js";import{DEFAULT_TICKER_ITEMS as qe}from"../../format/lib/hero-ticker.js";const Fe=`
|
|
2
2
|
.hero-ticker-pick { cursor: pointer; }
|
|
3
3
|
.hero-ticker-pick:hover {
|
|
4
4
|
outline: 2px solid color-mix(in srgb, ${Z} 45%, transparent);
|
|
@@ -8,4 +8,4 @@
|
|
|
8
8
|
outline: 2px solid ${Z};
|
|
9
9
|
outline-offset: -2px;
|
|
10
10
|
}
|
|
11
|
-
`,
|
|
11
|
+
`,Ke="Play video",Ue="Hold video",Je="flex h-7 cursor-pointer items-center gap-1.5 rounded-full border border-overlay-chrome/25 bg-overlay-scrim/80 px-[11px] font-mono text-[11px] leading-none tracking-[0.05em] text-overlay-fg",Qe=()=>te("item"),oe=new Map;function We(T,w){const p=T?.ownerDocument?.defaultView;if(p)return p.addEventListener(I,w),()=>p.removeEventListener(I,w)}function Ze({slides:T,alignment:w,textureOpacity:p,showTexture:ne,textureColor:se,phoneUpDown:ce,phoneSideways:ae,autoplay:M,autoplayInterval:O,showTicker:le,tickerItems:ie,heightDesktop:P,heightMobile:D,showPicker:ue,pickerShape:de,pickerPlacement:me,showArrows:fe,arrowsShape:he,arrowsPlacement:pe,editing:n}){const V=Me(P,D),ve=V?"h-[var(--sf-hero-h-m)] min-[720px]:h-[var(--sf-hero-h-d)]":"h-screen min-h-[680px]",be=V?{"--sf-hero-h-d":ee(P),"--sf-hero-h-m":ee(D)}:void 0,C=(ie??qe.map(e=>({text:e}))).map(e=>e?.text?.trim()?e.text:n?Qe():"").filter(Boolean),$=le!==!1,u=l(null),z=l(null),X=l(null),B=l(null),G=l(null),j=Oe(),E=l(j),[y,xe]=k([]),[ke,Y]=k(0),v=l(0),[q,F]=k(!1),[g,we]=k(!1),[K,Ee]=k(null),H=Ie(),{selectedHeroId:ye,select:U}=Ne(),S=f(()=>u.current?.querySelector(".hero-track")??null,[]),i=f((e,t=!1)=>{Y(e),v.current=e,oe.set(E.current,e);const r=u.current?.querySelector(".hero-track");if(r)if(t){const o=r.style.transition;r.style.transition="none",r.style.transform=`translateX(-${Math.max(0,e)*100}%)`,r.offsetHeight,r.style.transition=o}else r.style.transform=`translateX(-${Math.max(0,e)*100}%)`},[]);h(()=>{const e=u.current,t=e?.getAttribute("data-easel-block")||e?.closest("[data-easel-block]")?.getAttribute("data-easel-block")||j;E.current=t,Ee(t);const r=oe.get(t);typeof r=="number"&&(Y(r),v.current=r)},[]),h(()=>{const e=S();if(!e)return;const t=()=>{xe(o=>De(o,re(e,"data-slide-name")))};t();const r=new MutationObserver(t);return r.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["data-slide-name","data-slide-process","data-slide-media"]}),()=>{r.disconnect()}},[S]),h(()=>{if(!n)return;const e=t=>{const r=t.detail;if(!r||typeof r.index!="number")return;const o=u.current,a=o?.getAttribute("data-easel-block")||o?.closest("[data-easel-block]")?.getAttribute("data-easel-block")||E.current;r.id&&r.id!==a||i(r.index,!0)};return We(u.current,e)},[n,i]);const s=y.length,d=Math.min(Math.max(ke,0),Math.max(0,s-1)),L=$e({shown:ue,count:s}),J=ze({shown:fe,count:s}),Q=je({editing:n,shown:d,slides:y}),ge=Ye({editing:n,playing:g,controlShown:Q}),_=Be({count:s,editing:n}),m=l(null),b=l(null),Se=f(e=>{if(m.current=null,b.current=null,!_||e.touches.length!==1)return;const t=e.touches[0];m.current={x:t.clientX,y:t.clientY},b.current={x:t.clientX,y:t.clientY}},[_]),_e=f(e=>{if(!m.current)return;if(e.touches.length!==1){m.current=null;return}const t=e.touches[0];b.current={x:t.clientX,y:t.clientY}},[]),Re=f(()=>{const e=m.current,t=b.current;if(m.current=null,b.current=null,!_||!e||!t)return;const r=Ge(t.x-e.x,t.y-e.y,v.current,s);r!==v.current&&i(r)},[_,s,i]);h(()=>{if(n||!M||q||H||s<=1)return;const t=Math.max(1,typeof O=="number"?O:6)*1e3,r=window.setTimeout(()=>i((d+1)%s),t);return()=>window.clearTimeout(r)},[n,M,O,q,H,s,d,i]),h(()=>{const e=[z.current,X.current,B.current].filter(Boolean),t=e.map(o=>N(o)),r=o=>{const a=o.target,x=a.closest("[data-hero-nav]"),W=x??a.closest("[data-idx]");if(!W)return;o.stopPropagation(),o.preventDefault();const A=x?Xe(x.dataset.heroNav,v.current,s):Number(W.dataset.idx);Number.isNaN(A)||(i(A,n),re(S(),"data-slide-name")[A]?.click())};return e.forEach(o=>o.addEventListener("click",r,{capture:!0})),()=>{t.forEach(o=>o?.()),e.forEach(o=>o.removeEventListener("click",r,{capture:!0}))}},[s,i,S,n]),h(()=>{if(!n)return;const e=G.current;if(!e)return;const t=N(e),r=o=>{o.stopPropagation(),o.preventDefault();const a=u.current,x=a?.getAttribute("data-easel-block")||a?.closest("[data-easel-block]")?.getAttribute("data-easel-block")||E.current;U(x)};return e.addEventListener("click",r,{capture:!0}),()=>{t?.(),e.removeEventListener("click",r,{capture:!0})}},[n,U,$,C.length]);const Te=f(e=>{if(!e)return;const t=N(e),r=o=>{o.stopPropagation(),o.preventDefault(),we(a=>!a)};return e.addEventListener("click",r,{capture:!0}),()=>{t?.(),e.removeEventListener("click",r,{capture:!0})}},[]);return c(He.Provider,{value:{alignment:w,textureOpacity:p,textureOn:ne,textureColor:se,quietVideo:ge,phoneUpDown:ce,phoneSideways:ae},children:R("div",{ref:u,className:`relative mx-[var(--sf-hero-bleed-m,calc(50%_-_50vw))] w-[var(--sf-hero-bleed-w,100vw)] ${ve} max-w-[var(--sf-hero-cap,none)] overflow-hidden`,style:be,onMouseEnter:()=>F(!0),onMouseLeave:()=>F(!1),onTouchStart:Se,onTouchMove:_e,onTouchEnd:Re,children:[c(T,{className:"hero-track flex h-full [&>*]:h-full [&>*]:min-w-full [&>*]:shrink-0 [&>*]:basis-full",style:{transform:`translateX(-${d*100}%)`,transition:H?"none":"transform 600ms cubic-bezier(.22,.61,.36,1)"},minEmptyHeight:400}),Q&&c("div",{ref:Te,"data-hero-video-control":g?"playing":"held",className:"sf-hero-video-control absolute left-6 z-[7]",style:{top:`calc(${Pe} + 16px)`},children:R("button",{type:"button",className:Je,children:[c("span",{"aria-hidden":"true",children:g?"❚❚":"▶"}),te(g?Ue:Ke)]})}),(L||J)&&R("div",{className:"pointer-events-none absolute inset-y-0 left-[var(--sf-hero-chrome-x,var(--sf-site-gutter,40px))] right-[var(--sf-hero-chrome-x,var(--sf-site-gutter,40px))] z-[6] mx-auto max-w-[var(--sf-hero-chrome-cap,calc(var(--sf-site-width,1600px)_-_var(--sf-site-gutter,40px)*2))]",children:[L&&c(Ae,{ref:z,slides:y,active:d,shape:Ve(de),placement:me}),J&&c(Le,{ref:B,shape:he,placement:pe})]}),L&&c("div",{ref:X,className:"sf-hero-phone-dots absolute bottom-[80px] left-1/2 z-[6] hidden -translate-x-1/2 items-center gap-2",children:y.map((e,t)=>c("button",{type:"button","data-idx":t,"aria-label":`Go to slide ${t+1}`,className:`h-2 rounded-full transition-all motion-reduce:transition-none ${t===d?"w-5 bg-accent":"w-2 bg-white/45 hover:bg-white/70"}`},t))}),$&&C.length>0&&R("div",{ref:G,className:`sf-hero-ticker absolute inset-x-0 bottom-0 z-[5] border-t border-overlay-chrome/10 py-3.5${n?" hero-ticker-pick":""}`,"data-selected":n&&K!=null&&ye===K?"":void 0,style:{background:"rgba(10,10,10,.55)"},children:[n&&c("style",{children:Fe}),c(Ce,{items:C,backdrop:"dark-media"})]})]})})}export{I as HERO_SLIDER_GOTO_EVENT,Ue as HERO_VIDEO_HOLD_LABEL,Ke as HERO_VIDEO_PLAY_LABEL,Ze as default,We as subscribeSliderGoto};
|
|
@@ -39,6 +39,7 @@ type Ctx = {
|
|
|
39
39
|
textStyles: unknown;
|
|
40
40
|
setTextStyles: (v: unknown) => void;
|
|
41
41
|
wordStyles: Record<WordStyleName, ResolvedWordStyle> | null;
|
|
42
|
+
cardThemeIndex: number | null;
|
|
42
43
|
siteWidth: number | null;
|
|
43
44
|
setSiteWidth: (v: number | null) => void;
|
|
44
45
|
siteGutter: number | null;
|
|
@@ -62,7 +63,7 @@ type Ctx = {
|
|
|
62
63
|
setSelectHandler: (fn: () => void) => void;
|
|
63
64
|
};
|
|
64
65
|
export declare const PreviewHeaderContext: import("react").Context<Ctx>;
|
|
65
|
-
export declare function PreviewHeaderProvider({ children, websiteName, templateChrome, templateName, chromePlaceholder, themeMode, onThemeModeChange, themeSwitchShown, onThemeSwitchShownChange, theme, onThemeChange, fonts, onFontsChange, sizes, onSizesChange, cornerRadiusPx, onCornerRadiusPxChange, cardShadow, onCardShadowChange, shadowColor, onShadowColorChange, cardGap, onCardGapChange, hoverEffect, onHoverEffectChange, headingCompression, onHeadingCompressionChange, siteWidth, onSiteWidthChange, siteGutter, blockGap, onSiteGutterChange, onBlockGapChange, headingTypography, onHeadingTypographyChange, textStyles, onTextStylesChange, wordStyles, heroBackgroundFollowsWidth, onHeroBackgroundFollowsWidthChange, sectionBackgroundWidth, onSectionBackgroundWidthChange, sectionContentWidth, onSectionContentWidthChange, photographyGrayscale, onPhotographyGrayscaleChange, shareButtonOnPosts, onShareButtonOnPostsChange, themeFromDocument, }: {
|
|
66
|
+
export declare function PreviewHeaderProvider({ children, websiteName, templateChrome, templateName, chromePlaceholder, themeMode, onThemeModeChange, themeSwitchShown, onThemeSwitchShownChange, theme, onThemeChange, fonts, onFontsChange, sizes, onSizesChange, cornerRadiusPx, onCornerRadiusPxChange, cardShadow, onCardShadowChange, shadowColor, onShadowColorChange, cardGap, onCardGapChange, hoverEffect, onHoverEffectChange, headingCompression, onHeadingCompressionChange, siteWidth, onSiteWidthChange, siteGutter, blockGap, onSiteGutterChange, onBlockGapChange, headingTypography, onHeadingTypographyChange, textStyles, onTextStylesChange, wordStyles, cardThemeIndex, heroBackgroundFollowsWidth, onHeroBackgroundFollowsWidthChange, sectionBackgroundWidth, onSectionBackgroundWidthChange, sectionContentWidth, onSectionContentWidthChange, photographyGrayscale, onPhotographyGrayscaleChange, shareButtonOnPosts, onShareButtonOnPostsChange, themeFromDocument, }: {
|
|
66
67
|
children: ReactNode;
|
|
67
68
|
websiteName?: string | null;
|
|
68
69
|
templateChrome?: boolean;
|
|
@@ -99,6 +100,7 @@ export declare function PreviewHeaderProvider({ children, websiteName, templateC
|
|
|
99
100
|
textStyles?: unknown;
|
|
100
101
|
onTextStylesChange?: (v: unknown) => void;
|
|
101
102
|
wordStyles?: Record<WordStyleName, ResolvedWordStyle> | null;
|
|
103
|
+
cardThemeIndex?: number | null;
|
|
102
104
|
headingTypography?: ResolvedHeadingTypography;
|
|
103
105
|
onHeadingTypographyChange?: (v: ResolvedHeadingTypography) => void;
|
|
104
106
|
heroBackgroundFollowsWidth?: boolean | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as
|
|
1
|
+
"use client";import{jsx as W}from"react/jsx-runtime";import{createContext as zt,useCallback as e,useContext as bt,useMemo as Vt,useState as O}from"react";import{EditorSiteLogoContext as Zt}from"./SiteLogoContext.js";import{useSelectHandler as qt}from"efficient-easel/draw/client";import{IDENTITY_CARD_GAP as g,DEFAULT_HEADING_COMPRESSION as B,DEFAULT_HEADING_TYPOGRAPHY as M,DEFAULT_SIZES as R,DEFAULT_SWITCH_SHOWN as N,DEFAULT_THEME_MODE as Y,DEFAULT_THEME_VALUE as j}from"../../format/lib/theme.js";import{DEFAULT_FONTS as z}from"../../format/lib/fonts.js";const b=zt({settings:null,setSettings:()=>{},primeSettings:()=>{},websiteName:null,templateChrome:!1,templateName:null,chromePlaceholder:!1,themeMode:Y,setThemeMode:()=>{},themeSwitchShown:N,setThemeSwitchShown:()=>{},theme:j,setTheme:()=>{},fonts:z,setFonts:()=>{},sizes:R,setSizes:()=>{},cornerRadiusPx:null,setCornerRadiusPx:()=>{},cardShadow:null,setCardShadow:()=>{},shadowColor:null,setShadowColor:()=>{},cardGap:g,setCardGap:()=>{},hoverEffect:null,setHoverEffect:()=>{},headingCompression:B,setHeadingCompression:()=>{},siteWidth:null,setSiteWidth:()=>{},siteGutter:null,blockGap:null,setSiteGutter:()=>{},setBlockGap:()=>{},headingTypography:M,setHeadingTypography:()=>{},textStyles:null,setTextStyles:()=>{},wordStyles:null,cardThemeIndex:null,heroBackgroundFollowsWidth:null,setHeroBackgroundFollowsWidth:()=>{},sectionBackgroundWidth:null,setSectionBackgroundWidth:()=>{},sectionContentWidth:null,setSectionContentWidth:()=>{},photographyGrayscale:null,setPhotographyGrayscale:()=>{},shareButtonOnPosts:null,setShareButtonOnPosts:()=>{},themeFromDocument:!1,selected:!1,setSelected:()=>{},select:()=>{},setSelectHandler:()=>{}});function te({children:V,websiteName:o=null,templateChrome:l=!1,templateName:n=null,chromePlaceholder:r=!1,themeMode:Z=Y,onThemeModeChange:c,themeSwitchShown:q=N,onThemeSwitchShownChange:u,theme:J=j,onThemeChange:i,fonts:K=z,onFontsChange:d,sizes:Q=R,onSizesChange:S,cornerRadiusPx:X=null,onCornerRadiusPxChange:a,cardShadow:$=null,onCardShadowChange:p,shadowColor:C=null,onShadowColorChange:T,cardGap:tt=g,onCardGapChange:E,hoverEffect:et=null,onHoverEffectChange:f,headingCompression:st=B,onHeadingCompressionChange:m,siteWidth:lt=null,onSiteWidthChange:H,siteGutter:ot=null,blockGap:nt=null,onSiteGutterChange:h,onBlockGapChange:x,headingTypography:rt=M,onHeadingTypographyChange:_,textStyles:ct=null,onTextStylesChange:w,wordStyles:ut=null,cardThemeIndex:it=null,heroBackgroundFollowsWidth:dt=null,onHeroBackgroundFollowsWidthChange:D,sectionBackgroundWidth:St=null,onSectionBackgroundWidthChange:P,sectionContentWidth:at=null,onSectionContentWidthChange:A,photographyGrayscale:pt=null,onPhotographyGrayscaleChange:I,shareButtonOnPosts:Tt=null,onShareButtonOnPostsChange:k,themeFromDocument:v=!1}){const[s,G]=O(null),Et=e(t=>G(jt=>jt??t),[]),[ft,mt]=O(!1),Ht=e(t=>c?.(t),[c]),ht=e(t=>u?.(t),[u]),xt=e(t=>i?.(t),[i]),_t=e(t=>d?.(t),[d]),wt=e(t=>S?.(t),[S]),Dt=e(t=>H?.(t),[H]),Pt=e(t=>h?.(t),[h]),At=e(t=>x?.(t),[x]),It=e(t=>D?.(t),[D]),kt=e(t=>P?.(t),[P]),vt=e(t=>A?.(t),[A]),Gt=e(t=>I?.(t),[I]),yt=e(t=>k?.(t),[k]),Ft=e(t=>a?.(t),[a]),Lt=e(t=>p?.(t),[p]),Ut=e(t=>T?.(t),[T]),Wt=e(t=>E?.(t),[E]),Ot=e(t=>f?.(t),[f]),gt=e(t=>m?.(t),[m]),Bt=e(t=>_?.(t),[_]),Mt=e(t=>w?.(t),[w]),{select:Rt,setSelectHandler:Nt}=qt(),y=s?.logoUrl,F=s?.logoReversed,L=s?.logoInkIsDark,U=s!==null,Yt=Vt(()=>({logo:U?{logoUrl:y,logoReversed:F,logoInkIsDark:L}:null,placeholder:l||r,wordmark:l?n:o}),[U,y,F,L,l,r,n,o]);return W(Zt.Provider,{value:Yt,children:W(b.Provider,{value:{settings:s,setSettings:G,primeSettings:Et,websiteName:o,templateChrome:l,templateName:n,chromePlaceholder:r,themeMode:Z,setThemeMode:Ht,themeSwitchShown:q,setThemeSwitchShown:ht,theme:J,setTheme:xt,fonts:K,setFonts:_t,sizes:Q,setSizes:wt,cornerRadiusPx:X,setCornerRadiusPx:Ft,cardShadow:$,setCardShadow:Lt,shadowColor:C,setShadowColor:Ut,cardGap:tt,setCardGap:Wt,hoverEffect:et,setHoverEffect:Ot,headingCompression:st,setHeadingCompression:gt,siteWidth:lt,setSiteWidth:Dt,siteGutter:ot,blockGap:nt,setSiteGutter:Pt,setBlockGap:At,headingTypography:rt,setHeadingTypography:Bt,textStyles:ct,setTextStyles:Mt,wordStyles:ut,cardThemeIndex:v?null:it,heroBackgroundFollowsWidth:dt,setHeroBackgroundFollowsWidth:It,sectionBackgroundWidth:St,setSectionBackgroundWidth:kt,sectionContentWidth:at,setSectionContentWidth:vt,photographyGrayscale:pt,setPhotographyGrayscale:Gt,shareButtonOnPosts:Tt,setShareButtonOnPosts:yt,themeFromDocument:v,selected:ft,setSelected:mt,select:Rt,setSelectHandler:Nt},children:V})})}const ee=()=>bt(b);export{b as PreviewHeaderContext,te as PreviewHeaderProvider,ee as usePreviewHeader};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as
|
|
1
|
+
import{jsx as d}from"react/jsx-runtime";import c from"../../../../../components/Divider.js";import{padValuesOf as a}from"../../../../../../format/lib/content/section-padding.js";import{DividerMeta as m}from"../../../../../../format/lib/document/blocks/general/Divider/meta.js";const g={...m,render:e=>{const{spacing:i,contained:t,style:n,thickness:r,lengthPct:o,hideOnMobile:s}=e;return d(c,{spacing:i,contained:t,style:n,thickness:r,lengthPct:o,hideOnMobile:s===!0,pad:a(e)})}};export{g as DividerRender};
|
|
@@ -9,7 +9,6 @@ export declare const SECTION_BOX: Props;
|
|
|
9
9
|
export declare const SAME_KEYS: readonly BoxEntry[];
|
|
10
10
|
export declare const DROP_COMMON: Readonly<Record<string, string>>;
|
|
11
11
|
export declare const DROP_SIDE_PADDING: Readonly<Record<string, string>>;
|
|
12
|
-
export declare const num: (v: unknown) => number | undefined;
|
|
13
12
|
export type OwnPad = {
|
|
14
13
|
top: number;
|
|
15
14
|
bottom: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{NESTED_BOX_PADDING as c}from"../../../../../format/lib/content/box-layout.js";import{ButtonBlockMeta as r}from"../../../../../format/lib/document/blocks/general/ButtonBlock/meta.js";import{TextMeta as a}from"../../../../../format/lib/document/blocks/general/Text/meta.js";import{finiteNumber as n}from"../../../../../format/lib/finite-number.js";import{hasWords as p}from"../../../sections/section-to-box.js";const{text:B,tag:_,...h}=a.defaultProps,s=h,b={...s,tone:"dim"},{label:D,href:E,...g}=r.defaultProps,O=g,d={justify:"start",align:"stretch",wrap:!1,blockSpacing:"gap",padV2:!0},S={...d,direction:"column",...c},M={...d,sectionAccent:0},N=["gridSpan","backgroundWidth","contentWidth","contentMax","widthMode","sectionHeightMode","sectionHeightValue","sectionHeightUnit","sectionHeightModePhone","sectionHeightValuePhone","sectionHeightUnitPhone","sectionCorners","sectionCornerSides","sectionBorder","sectionBorderPhone","sectionAccent","stickTop","stickTopDistance","stickTopPhone","stickTopDistancePhone","anchor","sectionAnimation","_hidden"],k={sectionSurface:"read by nothing in src/ (searched 2026-10-24): a retired theme key that draws nothing today, so dropping it changes nothing"},A=Object.fromEntries(["sectionPaddingLeft","sectionPaddingRight","sectionPaddingLeftPhone","sectionPaddingRightPhone"].map(o=>[o,"needs Box side padding outside its gutter: the old section added it outside its frame, a Box's side padding replaces the gutter. 0 live nodes store it (JJ's read-only export, 2026-10-24)"]));function P(o,t){const i=n(o.sectionPaddingTop)??0,e=n(o.sectionPaddingBottom)??0;return{sectionPaddingTop:i+t.top,sectionPaddingBottom:e+t.bottom,sectionPaddingTopPhone:(n(o.sectionPaddingTopPhone)??i)+t.topPhone,sectionPaddingBottomPhone:(n(o.sectionPaddingBottomPhone)??e)+t.bottomPhone}}const H=o=>["sectionPaddingTop","sectionPaddingBottom","sectionPaddingTopPhone","sectionPaddingBottomPhone"].map(t=>[t,t,(i,e)=>P(e,o)[t]]),m={kind:"heading-case-upper",styles:["heading-1","heading-2","heading-3"]},I=o=>t=>p(t.props[o])?[m]:[],C=(o,t)=>({kind:"text",key:o,role:"eyebrow",props:s,...t?{style:t}:{}});export{d as BOX,O as BUTTON,b as DIM,k as DROP_COMMON,A as DROP_SIDE_PADDING,m as HEADING_CASE_UPPER,S as INNER_BOX,N as SAME_KEYS,M as SECTION_BOX,s as TEXT,I as headingCaseOf,C as smallText,P as wrapperPad,H as wrapperPadKeys};
|