efficient-web-builder 41.1.0 → 43.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 +263 -0
- package/README.md +0 -21
- package/dist/editor/components/AnchorField.js +1 -1
- package/dist/editor/components/DuplicatePageDialog.js +1 -1
- package/dist/editor/components/MediaUploadField.d.ts +3 -1
- package/dist/editor/components/MediaUploadField.js +1 -1
- package/dist/editor/components/PagesPanel.js +1 -1
- package/dist/editor/components/SectionEditor.d.ts +5 -4
- package/dist/editor/components/SectionEditor.js +1 -1
- package/dist/editor/components/SectionIcon.js +1 -1
- package/dist/editor/components/SectionThumbnail.js +1 -1
- package/dist/editor/components/SiteFields.d.ts +2 -1
- package/dist/editor/components/SiteFields.js +1 -1
- package/dist/editor/components/StylesPanel.d.ts +3 -1
- package/dist/editor/components/StylesPanel.js +1 -1
- package/dist/editor/components/WebsiteScreenParts.js +1 -1
- package/dist/editor/components/WebsiteSettingsPanel.d.ts +6 -1
- package/dist/editor/components/WebsiteSettingsPanel.js +1 -1
- package/dist/editor/components/storefront-editor.css +97 -117
- package/dist/editor/components/useHostDocumentBridge.js +1 -1
- package/dist/editor/components/useLocationsTree.js +1 -1
- 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/components/useSocialSettings.d.ts +2 -2
- package/dist/editor/lib/document/ColourControl.d.ts +7 -2
- package/dist/editor/lib/document/ColourControl.js +1 -1
- package/dist/editor/lib/document/blocks/general/ButtonBlock/fields.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/HeroSlide/fields.js +1 -1
- package/dist/editor/lib/document/blocks/general/Logos/fields.js +1 -1
- package/dist/editor/lib/document/blocks/general/Text/fields.js +1 -1
- package/dist/editor/lib/document/blocks/general/index.d.ts +2 -2
- package/dist/editor/lib/document/canvas-typing.js +1 -1
- package/dist/editor/lib/document/consent-words-field.d.ts +6 -0
- package/dist/editor/lib/document/consent-words-field.js +1 -0
- package/dist/editor/lib/document/controls.d.ts +14 -2
- package/dist/editor/lib/document/controls.js +1 -1
- package/dist/editor/lib/document/field-groups.js +1 -1
- package/dist/editor/lib/document/footer-blocks.js +1 -1
- package/dist/editor/lib/document/locked-blocks.d.ts +3 -0
- package/dist/editor/lib/document/locked-blocks.js +1 -1
- package/dist/editor/lib/document/page-root-fields.d.ts +1 -0
- package/dist/editor/lib/document/page-root-fields.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/document/section-width-fields.js +1 -1
- package/dist/editor/lib/document/selected-host.d.ts +2 -0
- package/dist/editor/lib/document/selected-host.js +1 -0
- package/dist/editor/lib/page-copy.js +1 -1
- package/dist/editor/lib/sections/section-dry-run.d.ts +24 -6
- 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/block-sources.js +1 -1
- package/dist/format/lib/content/box-layout.d.ts +5 -0
- package/dist/format/lib/content/box-layout.js +1 -1
- package/dist/format/lib/content/box-shadow.d.ts +3 -0
- package/dist/format/lib/content/box-shadow.js +1 -0
- package/dist/format/lib/content/button-icon.d.ts +2 -1
- package/dist/format/lib/content/button-icon.js +1 -1
- package/dist/format/lib/content/button-look.d.ts +46 -0
- package/dist/format/lib/content/button-look.js +1 -0
- package/dist/format/lib/content/consent-banner.d.ts +21 -0
- package/dist/format/lib/content/consent-banner.js +1 -1
- package/dist/format/lib/content/contact.js +1 -1
- package/dist/format/lib/content/footer.d.ts +15 -0
- package/dist/format/lib/content/footer.js +1 -1
- package/dist/format/lib/content/gallery-layout.d.ts +12 -0
- package/dist/format/lib/content/gallery-layout.js +1 -1
- package/dist/format/lib/content/section-padding.d.ts +10 -0
- 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.js +1 -1
- package/dist/format/lib/document/blocks/general/Divider/meta.js +1 -1
- package/dist/format/lib/document/blocks/general/Logos/meta.d.ts +6 -0
- package/dist/format/lib/document/blocks/general/Logos/meta.js +1 -1
- package/dist/format/lib/document/blocks/general/SectionHeader/meta.js +1 -1
- package/dist/format/lib/document/box-footer.js +1 -1
- package/dist/format/lib/document/container-blocks.js +1 -1
- package/dist/format/lib/document/media-manifest.json +3 -2
- package/dist/format/lib/document/nestable-content-sections.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/passes/settings-groups.js +1 -1
- package/dist/format/lib/document/root-panel.d.ts +8 -0
- package/dist/format/lib/document/root-panel.js +1 -0
- 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/document/source-bound-parts.js +1 -1
- package/dist/format/lib/editor-words-catalogue.d.ts +26 -4
- package/dist/format/lib/editor-words-catalogue.js +4 -4
- package/dist/format/lib/editor-words.js +1 -1
- package/dist/format/lib/finite-number.d.ts +1 -0
- package/dist/format/lib/finite-number.js +1 -0
- package/dist/format/lib/hero-texture.js +1 -1
- package/dist/format/lib/hero-video.d.ts +7 -0
- package/dist/format/lib/hero-video.js +1 -1
- package/dist/format/lib/links/page-link-rules.js +1 -1
- package/dist/format/lib/marked-children.d.ts +1 -0
- package/dist/format/lib/marked-children.js +1 -0
- package/dist/format/lib/non-empty-string.d.ts +1 -0
- package/dist/format/lib/non-empty-string.js +1 -0
- package/dist/format/lib/popup/look.d.ts +1 -1
- package/dist/format/lib/popup/look.js +1 -1
- package/dist/format/lib/reel.d.ts +2 -1
- package/dist/format/lib/reel.js +1 -1
- 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/sections/hero-overlay.js +1 -1
- package/dist/format/lib/sections/logo-look.d.ts +7 -0
- package/dist/format/lib/sections/logo-look.js +1 -0
- package/dist/format/lib/sections/section-head-placement.d.ts +1 -0
- package/dist/format/lib/sections/section-head-placement.js +1 -1
- package/dist/format/lib/slugify.d.ts +1 -1
- package/dist/format/lib/slugify.js +1 -1
- 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/format/lib/theme.d.ts +2 -1
- package/dist/format/lib/theme.js +4 -4
- package/dist/render/components/BoxTabPaneContext.d.ts +2 -0
- package/dist/render/components/BoxTabPaneContext.js +1 -0
- package/dist/render/components/BoxTabs.d.ts +2 -1
- package/dist/render/components/BoxTabs.js +1 -1
- package/dist/render/components/Btn.d.ts +1 -0
- package/dist/render/components/Btn.js +1 -1
- package/dist/render/components/ButtonBlock.d.ts +12 -1
- package/dist/render/components/ButtonBlock.js +1 -1
- package/dist/render/components/Divider.d.ts +5 -4
- package/dist/render/components/Divider.js +1 -1
- package/dist/render/components/DocBody.js +5 -5
- package/dist/render/components/Flex.d.ts +3 -1
- package/dist/render/components/Flex.js +1 -1
- package/dist/render/components/HeroSection.js +2 -2
- package/dist/render/components/LogoBlock.d.ts +1 -1
- package/dist/render/components/LogoBlock.js +1 -1
- package/dist/render/components/LogoWallContext.d.ts +12 -0
- package/dist/render/components/LogoWallContext.js +1 -0
- package/dist/render/components/Logos.d.ts +16 -1
- package/dist/render/components/Logos.js +1 -1
- package/dist/render/components/PaymentBadges.d.ts +3 -1
- package/dist/render/components/PaymentBadges.js +1 -1
- package/dist/render/components/Reel.js +1 -1
- package/dist/render/components/SiteGutterFrame.d.ts +2 -1
- package/dist/render/components/SiteGutterFrame.js +1 -1
- package/dist/render/lib/document/blocks/general/ButtonBlock/render.js +1 -1
- package/dist/render/lib/document/blocks/general/Divider/render.js +1 -1
- package/dist/render/lib/document/blocks/general/Flex/render.js +1 -1
- package/dist/render/lib/document/blocks/general/HeroSlide/render.js +1 -1
- package/dist/render/lib/document/blocks/general/Logos/render.js +1 -1
- package/dist/render/lib/document/blocks/general/PaymentBadges/render.js +1 -1
- package/dist/render/lib/document/blocks/general/section-to-box-row-parts.d.ts +4 -2
- 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-logos.d.ts +2 -0
- package/dist/render/lib/document/blocks/general/section-to-box-rows-logos.js +1 -0
- package/dist/render/lib/document/blocks/general/section-to-box-rows-stats.d.ts +5 -0
- package/dist/render/lib/document/blocks/general/section-to-box-rows-stats.js +1 -0
- package/dist/render/lib/document/blocks/general/section-to-box-rows.d.ts +0 -4
- 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/part-rows.js +1 -1
- package/dist/render/lib/document/passes/section-anchor.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/document/text-parts.js +1 -1
- package/dist/render/lib/sections/section-to-box.d.ts +32 -11
- 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 +5 -5
- 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
|
@@ -1 +1 @@
|
|
|
1
|
-
import{parseOption as
|
|
1
|
+
import{parseOption as d}from"../parse-option.js";import{withRowsShownWhen as r}from"../document/show-when-attach.js";import{nonEmptyString as l}from"../non-empty-string.js";const a="inline",s=[{label:"In this section",value:"inline"},{label:"In its own box",value:"own-box"}];function w(e){return[e.num,e.title,e.description,e.linkProp].filter(t=>l(t)!==void 0)}const p={ProductGrid:{num:"num",title:"title",description:"description",headRows:["num","title","titleSize","description","linkText","linkHref"],renderer:"ProductGridSection",padKey:"padTop",linkProp:"link"},TyreSizes:{num:"num",title:"title",description:"description",headRows:["num","title","description"],renderer:"DynamicTyreSizes"},FitmentFinder:{num:"num",title:"title",description:"description",headRows:["num","title","description"],renderer:"FitmentFinder"},TyreFitment:{num:"num",title:"title",description:"description",headRows:["num","title","description"],renderer:"DynamicTyreFitment"},BundleOffer:{num:"num",title:"title",description:"description",headRows:["num","title","description"],renderer:"DynamicBundleOffer"},CompatibleTyres:{num:"num",title:"title",description:"description",headRows:["num","title","description"],renderer:"DynamicRelatedProducts"},RelatedProducts:{num:"num",title:"title",description:"description",headRows:["num","title","description"],renderer:"DynamicRelatedProducts"},SpecTable:{num:"num",title:"title",description:"description",headRows:["num","title","description"],renderer:"SpecTable"},FAQ:{num:"num",title:"title",linkProp:"link",headRows:["num","title","linkText","linkHref"],renderer:"FAQ"},GalleryB:{num:"num",title:"title",headRows:["num","title","linkText","linkHref"],renderer:"GalleryGrid"},FitmentTable:{num:"num",title:"title",description:"description",headRows:["num","title","description"],renderer:"FitmentTable"},Events:{num:"num",title:"title",linkProp:"link",headRows:["num","title","linkText","linkHref"],renderer:"Events"},ProcessSteps:{num:"num",title:"title",description:"description",headRows:["num","title","description"],headStyle:"editorial",renderer:"ProcessSteps",padKey:"padTop"},LongRead:{num:"headNum",title:"headTitle",description:"headDesc",headRows:["headNum","headTitle","headDesc"],headStyle:"editorial",renderer:"LongRead"},Series:{num:"headNum",title:"headTitle",description:"headDesc",headRows:["headNum","headTitle","headDesc"],headStyle:"editorial",renderer:"Series"},TimelineTrack:{num:"eyebrow",title:"title",description:"intro",headRows:["eyebrow","title","intro"],headStyle:"editorial",renderer:"TimelineTrack",padKey:"padTop"},StatsParagraph:{num:"eyebrow",title:"title",description:"desc",headRows:["eyebrow","title","desc"],headStyle:"editorial",renderer:"StatsParagraph"},Footprint:{num:"sectionNumber",title:"heading",description:"tagline",headRows:["sectionNumber","heading","tagline"],headStyle:"editorial",renderer:"Footprint",padKey:"padTop"},Collections:{num:"eyebrow",title:"heading",headRows:["eyebrow","heading"],renderer:"Collections"},Cards:{num:"eyebrow",title:"title",headRows:["eyebrow","eyebrowLook","title"],headStyle:"simple",renderer:"Cards"},Testimonials:{num:"eyebrow",title:"title",headRows:["eyebrow","eyebrowLook","title"],headStyle:"simple",renderer:"Testimonials"},Reviews:{num:"eyebrow",title:"title",headRows:["eyebrow","eyebrowLook","title"],headStyle:"simple",renderer:"Reviews"},Prose:{num:"eyebrow",title:"title",headRows:["eyebrow","title"],headStyle:"essay",renderer:"Prose"},ReviewForm:{num:"eyebrow",title:"title",headRows:["eyebrow","title"],headStyle:"simple",renderer:"ReviewForm"},DeliveryOptions:{num:"eyebrow",title:"title",description:"body",headRows:["eyebrow","title","body"],headStyle:"natural",headRowGap:"gap-3",headDescriptionSize:"text-[15px]",renderer:"DeliveryOptions"}},y="SectionHeader";function S(e){return e in p}function T(e){return d(s,a,e)}const n=new Set(["Flex"]);function R(e){return!!e?.type&&n.has(e.type)}const m={not:{context:"parentType",in:[...n]}};function b(e,t,i){return r(e,i,m)}const o={not:{field:"headPlacement",is:"own-box"}},P={not:o};function x(e,t,i){return r(e,i,o)}export{a as DEFAULT_SECTION_HEAD_PLACEMENT,o as HEAD_ROWS_SHOW_WHEN,P as OWN_BOX_ROWS_SHOW_WHEN,s as SECTION_HEAD_PLACEMENT_OPTIONS,y as SECTION_HEAD_TYPE,p as SPLITTABLE_SECTIONS,m as WIDTH_ROWS_SHOW_WHEN,S as canSplitHead,x as headFieldsForPlacement,w as headRoleProps,R as parentCapsWidth,T as parseSectionHeadPlacement,b as widthFieldsForParent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export
|
|
1
|
+
export { slugify } from "efficient-shell/format";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
import{slugify as r}from"efficient-shell/format";export{r as slugify};
|
|
@@ -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};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { contrastRatio } from "efficient-shell/format";
|
|
1
2
|
export declare const THEME_STORAGE_KEY = "storefront-theme";
|
|
2
3
|
export declare const THEME_MODE_KEY = "sf:theme-mode";
|
|
3
4
|
export declare const THEME_SWITCH_KEY = "sf:theme-switch";
|
|
@@ -51,7 +52,7 @@ export declare function themeSwatchColors(c: ThemeColors): {
|
|
|
51
52
|
export declare const READABILITY_AA = 4.5;
|
|
52
53
|
export declare const READABILITY_AA_LARGE = 3;
|
|
53
54
|
export type ReadabilityGrade = "good" | "large-only" | "hard";
|
|
54
|
-
export
|
|
55
|
+
export { contrastRatio };
|
|
55
56
|
export declare const GRADE_LABEL: Record<ReadabilityGrade, string>;
|
|
56
57
|
export declare function gradeContrast(ratio: number): ReadabilityGrade;
|
|
57
58
|
export declare function accentInk(accent: string): string;
|
package/dist/format/lib/theme.js
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
const
|
|
1
|
+
import{contrastRatio as L,hexToRgb as l,readableInk as k,relativeLuminance as $}from"efficient-shell/format";const F="storefront-theme",Se="sf:theme-mode",Ae="sf:theme-switch",Te="hide",be="light",we=!1,E=7,S=18;function P(e){return e>=E&&e<S}function Ce(e){const{mode:t,override:n,switchShown:r,hour:o}=e;return r&&(n==="light"||n==="dark")?n:t==="auto"?P(o)?"light":"dark":t==="light"?"light":"dark"}function Ie(e){const{mode:t,switchShown:n}=e;return`
|
|
2
2
|
try {
|
|
3
3
|
var mode = ${JSON.stringify(t)};
|
|
4
4
|
var shown = ${n?"true":"false"};
|
|
5
|
-
var override = localStorage.getItem(${JSON.stringify(
|
|
5
|
+
var override = localStorage.getItem(${JSON.stringify(F)});
|
|
6
6
|
var theme;
|
|
7
7
|
if (shown && (override === 'light' || override === 'dark')) {
|
|
8
8
|
theme = override;
|
|
9
9
|
} else if (mode === 'auto') {
|
|
10
10
|
var h = new Date().getHours();
|
|
11
|
-
theme = (h >=
|
|
11
|
+
theme = (h >= ${E} && h < ${S}) ? 'light' : 'dark';
|
|
12
12
|
} else {
|
|
13
13
|
theme = mode === 'light' ? 'light' : 'dark';
|
|
14
14
|
}
|
|
15
15
|
if (theme === 'light') document.documentElement.setAttribute('data-theme', 'light');
|
|
16
16
|
else document.documentElement.removeAttribute('data-theme');
|
|
17
17
|
} catch (e) {}
|
|
18
|
-
`}const a={background:"#0a0a0a",surface:"#131313",line:"#2a2a2a",muted:"#9a9388"},$=[{text:"#2e2e2e",accent:"#2e2e2e",background:"#ffffff",surface:"#f7f7f7",line:"#e0e0e0",muted:"#5c5c5c"},{text:"#f7f7f7",accent:"#f7f7f7",background:"#0a0a0a",surface:"#1b1b1b",line:"#363636",muted:"#a3a3a3"},{text:"#ffffff",accent:"#ffffff",background:"#2e2e2e",surface:"#3d3d3d",line:"#545454",muted:"#b0b0b0"},{text:"#0a0a0a",accent:"#0a0a0a",background:"#f7f7f7",surface:"#ffffff",line:"#d9d9d9",muted:"#5c5c5c"}],F={selected:0,themes:$};function A(e){return!e||!Array.isArray(e.themes)||e.themes.length===0?{...F}:{selected:Math.min(Math.max(0,e.selected??0),e.themes.length-1),themes:e.themes}}function f(e,t,n){const r=u(e),o=u(t);if(r===null||o===null)return e;const i=c=>Math.max(0,Math.min(255,Math.round(c))).toString(16).padStart(2,"0");return`#${r.map((c,O)=>i(c+(o[O]-c)*n)).join("")}`}const P={light:"#ffffff",dark:"#0a0a0a"},Re=["light","dark"];function we(e,t){const n=P[t],r=t==="light"?"#ffffff":"#000000";return{text:n,accent:n,background:e,surface:f(e,r,.1),line:f(e,r,.22),muted:f(n,e,.35),brandInk:t}}function s(e){const t=A(e);return t.themes[t.selected]}function d(e){return{text:e.text,accent:e.accent,background:e.background||a.background,surface:e.surface||a.surface,line:e.line||a.line,muted:e.muted||a.muted}}function De(e){return{fill:d(e).background,accent:e.accent}}function u(e){const t=/^#([0-9a-f]{3}|[0-9a-f]{6})$/i.exec(e.trim());if(!t)return null;const n=t[1].length===3?[...t[1]].map(c=>c+c).join(""):t[1],[r,o,i]=[0,2,4].map(c=>parseInt(n.slice(c,c+2),16));return[r,o,i]}function g(e){const t=u(e);if(t===null)return null;const[n,r,o]=t.map(i=>{const c=i/255;return c<=.04045?c/12.92:((c+.055)/1.055)**2.4});return .2126*n+.7152*r+.0722*o}const U=.4,G=4.5,Y=3;function z(e,t){const n=g(e),r=g(t);if(n===null||r===null)return null;const[o,i]=n>=r?[n,r]:[r,n];return(o+.05)/(i+.05)}const He={good:"Good","large-only":"Large text only",hard:"Hard to read"};function Ie(e){return e>=G?"good":e>=Y?"large-only":"hard"}const m=["#000000","#ffffff"];function l(e){let t=m[0],n=-1;for(const r of m){const o=z(e,r);if(o===null)return m[0];o>n&&(n=o,t=r)}return t}const B=[.25,.4,.55];function Me(e){const t=u(e);return t===null?[]:B.map(n=>"#"+t.map(r=>Math.round(r*(1-n)).toString(16).padStart(2,"0")).join(""))}function ye(e){const t=s(e),n={"--theme-fg":t.text},r=g(t.text);return(r===null||r>=U)&&(n["--overlay-fg"]=t.text),n}const X=82;function p(e){return`color-mix(in srgb, ${e} ${X}%, #000)`}function Ne(e){const t=s(e);return{"--theme-accent":t.accent,"--theme-accent-2":p(t.accent),"--theme-accent-ink":l(t.accent)}}function x(e){const t=e?.button;return/^#[0-9a-fA-F]{6}$/.test(t??"")?t.toLowerCase():null}function Oe(e){const t=s(e),n=x(t),r=T(t);if(n===null&&r===null)return{};const o={};return n!==null&&(o["--theme-btn"]=n,o["--theme-btn-2"]=p(n)),o["--theme-btn-ink"]=r??l(n),o}function T(e){const t=e?.buttonInk;return/^#[0-9a-fA-F]{6}$/.test(t??"")?t.toLowerCase():null}function W(e,t){return T(e)??l(x(e)??t)}function Le(e){const t=s(e);return{fill:x(t)??t.accent.toLowerCase(),ink:W(t,t.accent)}}function ke(e){const t={};return A(e).themes.forEach((n,r)=>{const o=d(n);t[`--theme-preset-${r}-accent`]=o.accent,t[`--theme-preset-${r}-accent-2`]=p(o.accent),t[`--theme-preset-${r}-accent-ink`]=l(o.accent),t[`--theme-preset-${r}-bg`]=o.background,t[`--theme-preset-${r}-fg`]=o.text,t[`--theme-preset-${r}-surface`]=o.surface,t[`--theme-preset-${r}-surface-2`]=`color-mix(in srgb, ${o.surface} 60%, ${o.line})`,t[`--theme-preset-${r}-line`]=o.line,t[`--theme-preset-${r}-muted`]=o.muted}),t}const $e=["--theme-bg","--theme-surface","--theme-surface-2","--theme-line","--theme-muted"];function Fe(e){const t=d(s(e)),n=`color-mix(in srgb, ${t.surface} 60%, ${t.line})`,r={"--theme-bg":t.background,"--theme-surface":t.surface,"--theme-line":t.line,"--theme-muted":t.muted};return(t.surface!==a.surface||t.line!==a.line)&&(r["--theme-surface-2"]=n),r}const K=["heading","body","label"],Pe={heading:"Headings",body:"Body",label:"Labels"};function Ue(e){if(!e)return null;for(const t of K)if(e.includes(`--size-${t}`))return t;return/--size-heading(Large|Medium|Small)/.test(e)?"heading":null}const b=["headingLarge","headingMedium","headingSmall","accent","body","label"],Ge={headingLarge:"heading",headingMedium:"heading",headingSmall:"heading",accent:"heading",body:"body",label:"label"},Ye={headingLarge:null,headingMedium:null,headingSmall:null,accent:null,body:null,label:null},V=8,j=200;function Z(e){if(typeof e!="number"||!Number.isFinite(e))return null;const t=Math.round(e);return t>=V&&t<=j?t:null}function q(e){const t={};for(const n of b)t[n]=Z(e?.[n]);return t}function ze(e){const t=q(e),n={};for(const r of b){const o=t[r];o!==null&&(n[`--size-${r}`]=`${o}px`)}return n}const J=["square","small","large"],Q="small";function v(e){return J.includes(e??"")?e:Q}function Be(e){return w(te[v(e)])}const C=0,ee=40,te={square:0,small:null,large:16},ne={"--sf-card-radius":1,"--sf-button-radius":.5,"--site-radius":.5,"--site-radius-xs":.25,"--site-radius-sm":.5,"--site-radius-md":.75,"--site-radius-lg":1,"--site-radius-xl":1.25,"--site-radius-2xl":1.5,"--site-radius-3xl":2,"--site-radius-4xl":2.5};function R(e){if(e==null||typeof e=="string"&&e.trim()==="")return null;const t=typeof e=="string"?Number(e):e;return Number.isFinite(t)?Math.min(ee,Math.max(C,Math.round(t))):null}function w(e){const t=R(e);return t===null?{}:Object.fromEntries(Object.entries(ne).map(([n,r])=>{const o=t*r/16;return[n,o===0?"0":`${o}rem`]}))}function Xe(e){return w(R(e)??C)}const re=["none","soft","lifted"],oe="soft",D="none",ie=["tight","normal","roomy"],ce="normal",ae="normal",se=["none","lift","highlight"],ue="lift",le="highlight",H="#141416";function I(e){return re.includes(e??"")?e:oe}function he(e){return ie.includes(e??"")?e:ce}function M(e){return se.includes(e??"")?e:ue}function fe(e){return/^#[0-9a-fA-F]{6}$/.test(e??"")?e.toLowerCase():H}function We(e){const t=I(e);return t===D?void 0:t}function Ke(e){const t=he(e);return t===ae?void 0:t}function Ve(e){const t=M(e);return t===le?void 0:t}function je(e,t,n){const r=fe(t);return r===H?{}:I(e)!==D||M(n)==="lift"?{"--sf-shadow-color":r}:{}}const de=["normal","tight","compressed"],y="normal";function N(e){return de.includes(e??"")?e:y}function Ze(e){const t=N(e);return t===y?void 0:t}function qe(e){switch(N(e)){case"tight":return{lineHeight:.95,letterSpacing:-.01};case"compressed":return{lineHeight:.86,letterSpacing:-.01};default:return{}}}const Je=["authored","sentence"],Qe={case:"authored",weight:null,weightStrong:null,italicStrong:null,maxPx:null,weight2:null,weight3:null,case2:"authored",case3:"authored"},_=100,E=900,ge=24,me=200;function h(e,t,n){return typeof e!="number"||!Number.isFinite(e)?null:Math.round(Math.min(Math.max(e,t),n))}function S(e){const t=h(e?.weight,_,E),n=e?.case==="sentence"?"sentence":"authored",r=i=>i==null?t:h(i,_,E),o=i=>i==="sentence"?"sentence":i==="authored"?"authored":n;return{case:n,weight:t,weightStrong:h(e?.weightStrong,_,E),italicStrong:typeof e?.italicStrong=="boolean"?e.italicStrong:null,maxPx:h(e?.maxPx,ge,me),weight2:r(e?.weight2),weight3:r(e?.weight3),case2:o(e?.case2),case3:o(e?.case3)}}function ve(e){const t=S(e),n={};return t.case==="sentence"&&(n["--sf-heading-case"]="none"),t.weight!==null&&(n["--sf-heading-weight"]=String(t.weight)),t.weightStrong!==null&&(n["--sf-heading-weight-strong"]=String(t.weightStrong)),t.maxPx!==null&&(n["--sf-heading-max"]=`${t.maxPx}px`),t.weight2!==null&&t.weight2!==t.weight&&(n["--sf-heading-2-weight"]=String(t.weight2)),t.weight3!==null&&t.weight3!==t.weight&&(n["--sf-heading-3-weight"]=String(t.weight3)),t.case2!==t.case&&(n["--sf-heading-2-case"]=t.case2==="sentence"?"none":"uppercase"),t.case3!==t.case&&(n["--sf-heading-3-case"]=t.case3==="sentence"?"none":"uppercase"),n}function et(e){return S({case:e?.heading_case??void 0,weight:e?.heading_weight,weightStrong:e?.heading_weight_strong,italicStrong:e?.accent_italic,maxPx:e?.heading_max_px,weight2:e?.heading_2_weight??void 0,weight3:e?.heading_3_weight??void 0,case2:e?.heading_2_case??void 0,case3:e?.heading_3_case??void 0})}function tt(e){const t=S(e);return{heading_case:t.case,heading_weight:t.weight,heading_weight_strong:t.weightStrong,heading_max_px:t.maxPx,heading_2_weight:t.weight2,heading_3_weight:t.weight3,heading_2_case:t.case2,heading_3_case:t.case3}}export{B as ACCENT_DARKEN_STEPS,Re as BRAND_INKS,ie as CARD_GAPS,re as CARD_SHADOWS,ee as CORNER_RADIUS_MAX,C as CORNER_RADIUS_MIN,J as CORNER_STYLES,te as CORNER_STYLE_TO_PX,ce as DEFAULT_CARD_GAP,oe as DEFAULT_CARD_SHADOW,Q as DEFAULT_CORNER_STYLE,y as DEFAULT_HEADING_COMPRESSION,Qe as DEFAULT_HEADING_TYPOGRAPHY,ue as DEFAULT_HOVER_EFFECT,H as DEFAULT_SHADOW_COLOR,Ye as DEFAULT_SIZES,a as DEFAULT_SURFACES,Se as DEFAULT_SWITCH_SHOWN,$ as DEFAULT_THEMES,Ee as DEFAULT_THEME_MODE,F as DEFAULT_THEME_VALUE,He as GRADE_LABEL,Je as HEADING_CASES,de as HEADING_COMPRESSIONS,me as HEADING_MAX_PX_MAX,ge as HEADING_MAX_PX_MIN,E as HEADING_WEIGHT_MAX,_ as HEADING_WEIGHT_MIN,se as HOVER_EFFECTS,ae as IDENTITY_CARD_GAP,D as IDENTITY_CARD_SHADOW,le as IDENTITY_HOVER_EFFECT,G as READABILITY_AA,Y as READABILITY_AA_LARGE,Ge as SCALE_OF_STEP,b as SIZE_STEPS,j as TEXT_SIZE_MAX,V as TEXT_SIZE_MIN,Te as THEME_DAY_END_HOUR,Ae as THEME_DAY_START_HOUR,pe as THEME_MODE_KEY,L as THEME_STORAGE_KEY,$e as THEME_SURFACE_KEYS,_e as THEME_SWITCH_HIDE,xe as THEME_SWITCH_KEY,K as TYPE_GROUPS,Pe as TYPE_GROUP_LABELS,l as accentInk,we as brandTheme,Ce as buildThemeBootScript,Ke as cardGapAttr,We as cardShadowAttr,qe as compressionMetrics,z as contrastRatio,w as cornerRadiusTokens,Be as cornerStyleTokens,Me as darkerAccents,Ie as gradeContrast,Ze as headingCompressionAttr,et as headingTypographyFromRow,ve as headingTypographyStyle,tt as headingTypographyToRow,Ve as hoverEffectAttr,k as isDayHour,he as normalizeCardGap,I as normalizeCardShadow,R as normalizeCornerRadius,v as normalizeCornerStyle,N as normalizeHeadingCompression,S as normalizeHeadingTypography,M as normalizeHoverEffect,fe as normalizeShadowColor,Z as normalizeSize,q as normalizeSizes,A as normalizeTheme,d as normalizeThemeColors,be as resolveTheme,W as resolvedButtonInk,s as selectedThemeColors,je as shadowColorTokens,Le as siteButtonPaint,Xe as siteCornerRadiusTokens,Ne as themeAccentStyle,x as themeButtonColour,T as themeButtonInk,Oe as themeButtonStyle,ye as themeColorStyle,ke as themePresetAccentVars,Fe as themeSurfaceStyle,De as themeSwatchColors,Ue as typeScaleGroupOfClassName,ze as typeSizesStyle};
|
|
18
|
+
`}const c={background:"#0a0a0a",surface:"#131313",line:"#2a2a2a",muted:"#9a9388"},G=[{text:"#2e2e2e",accent:"#2e2e2e",background:"#ffffff",surface:"#f7f7f7",line:"#e0e0e0",muted:"#5c5c5c"},{text:"#f7f7f7",accent:"#f7f7f7",background:"#0a0a0a",surface:"#1b1b1b",line:"#363636",muted:"#a3a3a3"},{text:"#ffffff",accent:"#ffffff",background:"#2e2e2e",surface:"#3d3d3d",line:"#545454",muted:"#b0b0b0"},{text:"#0a0a0a",accent:"#0a0a0a",background:"#f7f7f7",surface:"#ffffff",line:"#d9d9d9",muted:"#5c5c5c"}],U={selected:0,themes:G};function A(e){return!e||!Array.isArray(e.themes)||e.themes.length===0?{...U}:{selected:Math.min(Math.max(0,e.selected??0),e.themes.length-1),themes:e.themes}}function h(e,t,n){const r=l(e),o=l(t);if(r===null||o===null)return e;const i=(_,O)=>Math.max(0,Math.min(255,Math.round(_+(O-_)*n))).toString(16).padStart(2,"0");return`#${i(r.r,o.r)}${i(r.g,o.g)}${i(r.b,o.b)}`}const Y={light:"#ffffff",dark:"#0a0a0a"},Re=["light","dark"];function De(e,t){const n=Y[t],r=t==="light"?"#ffffff":"#000000";return{text:n,accent:n,background:e,surface:h(e,r,.1),line:h(e,r,.22),muted:h(n,e,.35),brandInk:t}}function a(e){const t=A(e);return t.themes[t.selected]}function f(e){return{text:e.text,accent:e.accent,background:e.background||c.background,surface:e.surface||c.surface,line:e.line||c.line,muted:e.muted||c.muted}}function ye(e){return{fill:f(e).background,accent:e.accent}}const z=.4,B=4.5,X=3,Me={good:"Good","large-only":"Large text only",hard:"Hard to read"};function He(e){return e>=B?"good":e>=X?"large-only":"hard"}const W=["#000000","#ffffff"];function s(e){return k(e,W)}const K=[.25,.4,.55];function Ne(e){const t=l(e);return t===null?[]:K.map(n=>"#"+[t.r,t.g,t.b].map(r=>Math.round(r*(1-n)).toString(16).padStart(2,"0")).join(""))}function Oe(e){const t=a(e),n={"--theme-fg":t.text},r=$(t.text);return(r===null||r>=z)&&(n["--overlay-fg"]=t.text),n}const V=82;function d(e){return`color-mix(in srgb, ${e} ${V}%, #000)`}function Le(e){const t=a(e);return{"--theme-accent":t.accent,"--theme-accent-2":d(t.accent),"--theme-accent-ink":s(t.accent)}}function g(e){const t=e?.button;return/^#[0-9a-fA-F]{6}$/.test(t??"")?t.toLowerCase():null}function ke(e){const t=a(e),n=g(t),r=T(t);if(n===null&&r===null)return{};const o={};return n!==null&&(o["--theme-btn"]=n,o["--theme-btn-2"]=d(n)),o["--theme-btn-ink"]=r??s(n),o}function T(e){const t=e?.buttonInk;return/^#[0-9a-fA-F]{6}$/.test(t??"")?t.toLowerCase():null}function Z(e,t){return T(e)??s(g(e)??t)}function $e(e){const t=a(e);return{fill:g(t)??t.accent.toLowerCase(),ink:Z(t,t.accent)}}function Fe(e){const t={};return A(e).themes.forEach((n,r)=>{const o=f(n);t[`--theme-preset-${r}-accent`]=o.accent,t[`--theme-preset-${r}-accent-2`]=d(o.accent),t[`--theme-preset-${r}-accent-ink`]=s(o.accent),t[`--theme-preset-${r}-bg`]=o.background,t[`--theme-preset-${r}-fg`]=o.text,t[`--theme-preset-${r}-surface`]=o.surface,t[`--theme-preset-${r}-surface-2`]=`color-mix(in srgb, ${o.surface} 60%, ${o.line})`,t[`--theme-preset-${r}-line`]=o.line,t[`--theme-preset-${r}-muted`]=o.muted}),t}const Pe=["--theme-bg","--theme-surface","--theme-surface-2","--theme-line","--theme-muted"];function Ge(e){const t=f(a(e)),n=`color-mix(in srgb, ${t.surface} 60%, ${t.line})`,r={"--theme-bg":t.background,"--theme-surface":t.surface,"--theme-line":t.line,"--theme-muted":t.muted};return(t.surface!==c.surface||t.line!==c.line)&&(r["--theme-surface-2"]=n),r}const j=["heading","body","label"],Ue={heading:"Headings",body:"Body",label:"Labels"};function Ye(e){if(!e)return null;for(const t of j)if(e.includes(`--size-${t}`))return t;return/--size-heading(Large|Medium|Small)/.test(e)?"heading":null}const b=["headingLarge","headingMedium","headingSmall","accent","body","label"],ze={headingLarge:"heading",headingMedium:"heading",headingSmall:"heading",accent:"heading",body:"body",label:"label"},Be={headingLarge:null,headingMedium:null,headingSmall:null,accent:null,body:null,label:null},q=8,J=200;function Q(e){if(typeof e!="number"||!Number.isFinite(e))return null;const t=Math.round(e);return t>=q&&t<=J?t:null}function v(e){const t={};for(const n of b)t[n]=Q(e?.[n]);return t}function Xe(e){const t=v(e),n={};for(const r of b){const o=t[r];o!==null&&(n[`--size-${r}`]=`${o}px`)}return n}const ee=["square","small","large"],te="small";function ne(e){return ee.includes(e??"")?e:te}function We(e){return I(oe[ne(e)])}const w=0,re=40,oe={square:0,small:null,large:16},ie={"--sf-card-radius":1,"--sf-button-radius":.5,"--site-radius":.5,"--site-radius-xs":.25,"--site-radius-sm":.5,"--site-radius-md":.75,"--site-radius-lg":1,"--site-radius-xl":1.25,"--site-radius-2xl":1.5,"--site-radius-3xl":2,"--site-radius-4xl":2.5};function C(e){if(e==null||typeof e=="string"&&e.trim()==="")return null;const t=typeof e=="string"?Number(e):e;return Number.isFinite(t)?Math.min(re,Math.max(w,Math.round(t))):null}function I(e){const t=C(e);return t===null?{}:Object.fromEntries(Object.entries(ie).map(([n,r])=>{const o=t*r/16;return[n,o===0?"0":`${o}rem`]}))}function Ke(e){return I(C(e)??w)}const ce=["none","soft","lifted"],ae="soft",R="none",se=["tight","normal","roomy"],ue="normal",le="normal",he=["none","lift","highlight"],fe="lift",de="highlight",D="#141416";function y(e){return ce.includes(e??"")?e:ae}function ge(e){return se.includes(e??"")?e:ue}function M(e){return he.includes(e??"")?e:fe}function me(e){return/^#[0-9a-fA-F]{6}$/.test(e??"")?e.toLowerCase():D}function Ve(e){const t=y(e);return t===R?void 0:t}function Ze(e){const t=ge(e);return t===le?void 0:t}function je(e){const t=M(e);return t===de?void 0:t}function qe(e,t,n){const r=me(t);return r===D?{}:y(e)!==R||M(n)==="lift"?{"--sf-shadow-color":r}:{}}const pe=["normal","tight","compressed"],H="normal";function N(e){return pe.includes(e??"")?e:H}function Je(e){const t=N(e);return t===H?void 0:t}function Qe(e){switch(N(e)){case"tight":return{lineHeight:.95,letterSpacing:-.01};case"compressed":return{lineHeight:.86,letterSpacing:-.01};default:return{}}}const ve=["authored","sentence"],et={case:"authored",weight:null,weightStrong:null,italicStrong:null,maxPx:null,weight2:null,weight3:null,case2:"authored",case3:"authored"},m=100,p=900,xe=24,_e=200;function u(e,t,n){return typeof e!="number"||!Number.isFinite(e)?null:Math.round(Math.min(Math.max(e,t),n))}function x(e){const t=u(e?.weight,m,p),n=e?.case==="sentence"?"sentence":"authored",r=i=>i==null?t:u(i,m,p),o=i=>i==="sentence"?"sentence":i==="authored"?"authored":n;return{case:n,weight:t,weightStrong:u(e?.weightStrong,m,p),italicStrong:typeof e?.italicStrong=="boolean"?e.italicStrong:null,maxPx:u(e?.maxPx,xe,_e),weight2:r(e?.weight2),weight3:r(e?.weight3),case2:o(e?.case2),case3:o(e?.case3)}}function tt(e){const t=x(e),n={};return t.case==="sentence"&&(n["--sf-heading-case"]="none"),t.weight!==null&&(n["--sf-heading-weight"]=String(t.weight)),t.weightStrong!==null&&(n["--sf-heading-weight-strong"]=String(t.weightStrong)),t.maxPx!==null&&(n["--sf-heading-max"]=`${t.maxPx}px`),t.weight2!==null&&t.weight2!==t.weight&&(n["--sf-heading-2-weight"]=String(t.weight2)),t.weight3!==null&&t.weight3!==t.weight&&(n["--sf-heading-3-weight"]=String(t.weight3)),t.case2!==t.case&&(n["--sf-heading-2-case"]=t.case2==="sentence"?"none":"uppercase"),t.case3!==t.case&&(n["--sf-heading-3-case"]=t.case3==="sentence"?"none":"uppercase"),n}function nt(e){return x({case:e?.heading_case??void 0,weight:e?.heading_weight,weightStrong:e?.heading_weight_strong,italicStrong:e?.accent_italic,maxPx:e?.heading_max_px,weight2:e?.heading_2_weight??void 0,weight3:e?.heading_3_weight??void 0,case2:e?.heading_2_case??void 0,case3:e?.heading_3_case??void 0})}function rt(e){const t=x(e);return{heading_case:t.case,heading_weight:t.weight,heading_weight_strong:t.weightStrong,heading_max_px:t.maxPx,heading_2_weight:t.weight2,heading_3_weight:t.weight3,heading_2_case:t.case2,heading_3_case:t.case3}}export{K as ACCENT_DARKEN_STEPS,Re as BRAND_INKS,se as CARD_GAPS,ce as CARD_SHADOWS,re as CORNER_RADIUS_MAX,w as CORNER_RADIUS_MIN,ee as CORNER_STYLES,oe as CORNER_STYLE_TO_PX,ue as DEFAULT_CARD_GAP,ae as DEFAULT_CARD_SHADOW,te as DEFAULT_CORNER_STYLE,H as DEFAULT_HEADING_COMPRESSION,et as DEFAULT_HEADING_TYPOGRAPHY,fe as DEFAULT_HOVER_EFFECT,D as DEFAULT_SHADOW_COLOR,Be as DEFAULT_SIZES,c as DEFAULT_SURFACES,we as DEFAULT_SWITCH_SHOWN,G as DEFAULT_THEMES,be as DEFAULT_THEME_MODE,U as DEFAULT_THEME_VALUE,Me as GRADE_LABEL,ve as HEADING_CASES,pe as HEADING_COMPRESSIONS,_e as HEADING_MAX_PX_MAX,xe as HEADING_MAX_PX_MIN,p as HEADING_WEIGHT_MAX,m as HEADING_WEIGHT_MIN,he as HOVER_EFFECTS,le as IDENTITY_CARD_GAP,R as IDENTITY_CARD_SHADOW,de as IDENTITY_HOVER_EFFECT,B as READABILITY_AA,X as READABILITY_AA_LARGE,ze as SCALE_OF_STEP,b as SIZE_STEPS,J as TEXT_SIZE_MAX,q as TEXT_SIZE_MIN,S as THEME_DAY_END_HOUR,E as THEME_DAY_START_HOUR,Se as THEME_MODE_KEY,F as THEME_STORAGE_KEY,Pe as THEME_SURFACE_KEYS,Te as THEME_SWITCH_HIDE,Ae as THEME_SWITCH_KEY,j as TYPE_GROUPS,Ue as TYPE_GROUP_LABELS,s as accentInk,De as brandTheme,Ie as buildThemeBootScript,Ze as cardGapAttr,Ve as cardShadowAttr,Qe as compressionMetrics,L as contrastRatio,I as cornerRadiusTokens,We as cornerStyleTokens,Ne as darkerAccents,He as gradeContrast,Je as headingCompressionAttr,nt as headingTypographyFromRow,tt as headingTypographyStyle,rt as headingTypographyToRow,je as hoverEffectAttr,P as isDayHour,ge as normalizeCardGap,y as normalizeCardShadow,C as normalizeCornerRadius,ne as normalizeCornerStyle,N as normalizeHeadingCompression,x as normalizeHeadingTypography,M as normalizeHoverEffect,me as normalizeShadowColor,Q as normalizeSize,v as normalizeSizes,A as normalizeTheme,f as normalizeThemeColors,Ce as resolveTheme,Z as resolvedButtonInk,a as selectedThemeColors,qe as shadowColorTokens,$e as siteButtonPaint,Ke as siteCornerRadiusTokens,Le as themeAccentStyle,g as themeButtonColour,T as themeButtonInk,ke as themeButtonStyle,Oe as themeColorStyle,Fe as themePresetAccentVars,Ge as themeSurfaceStyle,ye as themeSwatchColors,Ye as typeScaleGroupOfClassName,Xe as typeSizesStyle};
|
|
@@ -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,6 +1,7 @@
|
|
|
1
1
|
import { type ReactNode } from "react";
|
|
2
|
-
export default function BoxTabs({ children, className, style, }: {
|
|
2
|
+
export default function BoxTabs({ children, className, style, shape, }: {
|
|
3
3
|
children: ReactNode;
|
|
4
4
|
className?: string;
|
|
5
5
|
style?: React.CSSProperties;
|
|
6
|
+
shape?: unknown;
|
|
6
7
|
}): import("react").JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as o,Fragment as
|
|
1
|
+
"use client";import{jsx as o,Fragment as _,jsxs as j}from"react/jsx-runtime";import{useEffect as i,useRef as A,useState as l}from"react";import B from"./Reel.js";import{BOX_TAB_SHAPES as S}from"../../format/lib/reel.js";import{parseOption as E}from"../../format/lib/parse-option.js";import{BoxTabPaneContext as F}from"./BoxTabPaneContext.js";import{markedChildren as c}from"../../format/lib/marked-children.js";function L({children:u,className:b,style:d,shape:m}){const s=A(null),[r,f]=l([]),p=E(S,"tabs",m),[h,x]=l(0);i(()=>{const t=s.current;if(!t)return;const a=()=>{const g=c(t,"data-tab-label");f(g.map((v,T)=>v.dataset.tabLabel?.trim()||`Tab ${T+1}`))};a();const e=new MutationObserver(a);return e.observe(t,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["data-tab-label"]}),()=>e.disconnect()},[]);const n=r.length?Math.min(h,r.length-1):0;return i(()=>{const t=s.current;t&&c(t,"data-tab-label").forEach((a,e)=>{a.hidden=r.length>1&&e!==n})},[r,n]),j(_,{children:[r.length>1&&o(B,{slides:r.map(t=>({name:t,process:""})),active:n,shape:p,tone:"surface",label:"Tabs",ref:t=>{t&&(t.onclick=a=>{const e=a.target?.closest?.("[data-idx]")?.getAttribute("data-idx");e!=null&&x(Number(e))})}}),o("div",{ref:s,"data-box-tabs":!0,className:b,style:d,children:o(F.Provider,{value:!0,children:u})})]})}export{L as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as
|
|
1
|
+
import{jsx as r,Fragment as i,jsxs as l}from"react/jsx-runtime";import{SiteLink as x}from"../lib/site-runtime.js";import{BUTTON_PAD_CLASSES as y}from"../../format/lib/content/button-look.js";const c=`sf-button group inline-flex items-center justify-center gap-2.5 border ${y} font-mono text-[length:var(--size-label,14px)] uppercase tracking-[0.2em] transition-colors`,b={primary:"border-btn bg-btn text-btn-ink hover:border-btn-2 hover:bg-btn-2",ghost:"border-current bg-transparent hover:bg-white/10"};function j(p){const{variant:m="primary",arrow:e,glyphBefore:h,spread:f,className:u,style:n,children:t,href:s,newTab:d,...g}=p,a=`${f?c.replace("justify-center","justify-between"):c} ${b[m]??b.primary} ${u??""}`,o=h?l(i,{children:[e!==null&&r("span",{"aria-hidden":!0,className:"inline-flex",children:e??"→"}),t]}):l(i,{children:[t,e!==null&&r("span",{"aria-hidden":!0,className:"transition-transform group-hover:translate-x-[3px]",children:e??"→"})]});return s?r(x,{href:s,className:a,style:n,...d?{target:"_blank",rel:"noopener noreferrer"}:{},children:o}):r("button",{type:"button",className:a,style:n,...g,children:o})}export{j as default};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { BorderValue } from "../../format/lib/content/borders.js";
|
|
1
2
|
import { type BlockAlign as Align } from "../../format/lib/content/block-align.js";
|
|
2
3
|
type Variant = "primary" | "ghost";
|
|
3
4
|
export declare const BUTTON_BLOCK_CLASS = "sf-button-block";
|
|
@@ -13,6 +14,16 @@ interface ButtonBlockProps {
|
|
|
13
14
|
widthFit?: string;
|
|
14
15
|
buttonColor?: string;
|
|
15
16
|
buttonTextColor?: string;
|
|
17
|
+
buttonFillOpacity?: number;
|
|
18
|
+
buttonBorder?: BorderValue;
|
|
19
|
+
buttonPaddingTop?: number;
|
|
20
|
+
buttonPaddingRight?: number;
|
|
21
|
+
buttonPaddingBottom?: number;
|
|
22
|
+
buttonPaddingLeft?: number;
|
|
23
|
+
buttonPaddingTopPhone?: number;
|
|
24
|
+
buttonPaddingRightPhone?: number;
|
|
25
|
+
buttonPaddingBottomPhone?: number;
|
|
26
|
+
buttonPaddingLeftPhone?: number;
|
|
16
27
|
}
|
|
17
|
-
export default function ButtonBlock(
|
|
28
|
+
export default function ButtonBlock(props: ButtonBlockProps): import("react").JSX.Element;
|
|
18
29
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as
|
|
1
|
+
import{jsx as r}from"react/jsx-runtime";import{buttonArrowShown as A}from"../../format/lib/content/button-arrow.js";import{buttonIconAtEnd as k,buttonIconSide as L,buttonWidth as N,storedButtonIcon as P}from"../../format/lib/content/button-icon.js";import{buttonPadAttrs as S,buttonPaint as T}from"../../format/lib/content/button-look.js";import{ArrowLongRightIcon as _,ArrowRightIcon as v,ArrowUpRightIcon as O,BagIcon as j,CarIcon as G,CartIcon as R,ChevronRightIcon as U,DownloadIcon as E,EmailIcon as F,ExternalIcon as K,LocationIcon as Y,PlayIcon as $,SearchIcon as z,TagIcon as D}from"efficient-shell/icons/efficient";import H from"./BlockFrame.js";import J from"./Btn.js";import{renderGold as W}from"./goldPhrases.js";import{BLOCK_ALIGN_JUSTIFY as q}from"../../format/lib/content/block-align.js";const M="sf-button-block",Q={"arrow-right":v,"arrow-long-right":_,"arrow-up-right":O,"chevron-right":U,external:K,cart:R,bag:j,tag:D,email:F,location:Y,play:$,download:E,search:z,car:G};function V(n){const{label:u,href:f,variant:c,align:g,contained:p,arrow:w,icon:I,iconPosition:e,widthFit:l,buttonColor:o,buttonTextColor:i}=n,t=P(I),s=t&&t!=="none"?Q[t]:void 0,b=t===void 0?A(w)?{}:{arrow:null}:s?{arrow:r(s,{size:16}),...L(e)==="before"?{glyphBefore:!0}:{}}:{arrow:null},d=S(n),h=[N(l)==="fill"?"w-full":"",d?.className??""].filter(Boolean).join(" "),B=h?{className:h}:{},C=k(e,l)?{spread:!0}:{},a=T(n),y=a?a.background==="transparent"?"ghost":"primary":c,m={...a??(o?c==="ghost"?{borderColor:o}:{background:o,borderColor:o}:{}),...i?{color:i}:{},...d?.style??{}},x=Object.keys(m).length?{style:m}:{};return r(H,{contained:p,className:`${M} py-4`,children:r("div",{className:`flex ${q[g]}`,children:r(J,{href:f||"#",variant:y,...B,...C,...b,...x,children:W(u)})})})}export{M as BUTTON_BLOCK_CLASS,V 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};
|