efficient-web-builder 44.0.0 → 45.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/README.md +8 -0
- package/dist/editor/components/BlogPostSource.js +1 -1
- package/dist/editor/components/CanvasPartsBridge.js +1 -1
- package/dist/editor/components/CardShadowField.js +1 -1
- package/dist/editor/components/ChatSettingsPanel.js +1 -1
- package/dist/editor/components/FieldGlyph.js +1 -1
- package/dist/editor/components/LocationsGroupedField.js +1 -1
- package/dist/editor/components/PartInkControl.js +1 -1
- package/dist/editor/components/PartSettingsPanel.d.ts +0 -2
- package/dist/editor/components/PartSettingsPanel.js +1 -1
- package/dist/editor/components/PartTextBox.d.ts +6 -3
- package/dist/editor/components/PartTextBox.js +1 -1
- package/dist/editor/components/PreviewChatContext.d.ts +1 -2
- package/dist/editor/components/PreviewChatContext.js +1 -1
- package/dist/editor/components/PreviewPartAnchors.js +1 -1
- package/dist/editor/components/SectionIcon.js +1 -1
- package/dist/editor/components/SectionThemePicker.js +1 -1
- package/dist/editor/components/SectionWidthRows.d.ts +6 -13
- package/dist/editor/components/SectionWidthRows.js +1 -1
- package/dist/editor/components/SourceStatus.d.ts +2 -1
- package/dist/editor/components/SourceStatus.js +1 -1
- package/dist/editor/components/ThemeCard.js +1 -1
- package/dist/editor/components/ThemeColourField.js +1 -1
- package/dist/editor/components/ThemeField.js +1 -1
- package/dist/editor/components/TickerSettingsPanel.js +1 -1
- package/dist/editor/components/WebsiteScreenParts.js +1 -1
- package/dist/editor/components/WebsiteSettingsPanel.js +1 -1
- package/dist/editor/components/storefront-editor.css +90 -359
- package/dist/editor/components/useHostDocumentBridge.js +1 -1
- package/dist/editor/components/useLocationsTree.js +1 -1
- package/dist/editor/lib/animation/AnimationDurationRow.d.ts +3 -0
- package/dist/editor/lib/animation/AnimationDurationRow.js +1 -0
- package/dist/editor/lib/animation/entrance-fields.d.ts +4 -0
- package/dist/editor/lib/animation/entrance-fields.js +1 -0
- package/dist/editor/lib/animation/fields.d.ts +2 -0
- package/dist/editor/lib/animation/fields.js +1 -0
- package/dist/editor/lib/animation/loop-fields.d.ts +2 -0
- package/dist/editor/lib/animation/loop-fields.js +1 -0
- package/dist/editor/lib/document/ColourControl.js +1 -1
- package/dist/editor/lib/document/add-palette.js +1 -1
- package/dist/editor/lib/document/block-offer.js +1 -1
- package/dist/editor/lib/document/block-source-fields.d.ts +1 -1
- package/dist/editor/lib/document/block-source-fields.js +1 -1
- package/dist/editor/lib/document/blocks/general/Banner/fields.js +1 -1
- package/dist/editor/lib/document/blocks/general/Breadcrumb/fields.js +1 -1
- package/dist/editor/lib/document/blocks/general/ButtonBlock/fields.js +1 -1
- package/dist/editor/lib/document/blocks/general/Cards/fields.js +1 -1
- package/dist/editor/lib/document/blocks/general/CategoryBar/fields.js +1 -1
- package/dist/editor/lib/document/blocks/general/Chart/fields.js +1 -1
- package/dist/editor/lib/document/blocks/general/Divider/fields.js +1 -1
- package/dist/editor/lib/document/blocks/general/DocBody/fields.js +1 -1
- package/dist/editor/lib/document/blocks/general/DocMasthead/fields.js +1 -1
- package/dist/editor/lib/document/blocks/general/DocTabs/fields.js +1 -1
- package/dist/editor/lib/document/blocks/general/Eyebrow/fields.js +1 -1
- package/dist/editor/lib/document/blocks/general/FAQ/fields.js +1 -1
- package/dist/editor/lib/document/blocks/general/FeaturedCover/fields.js +1 -1
- package/dist/editor/lib/document/blocks/general/Flex/fields.js +1 -1
- package/dist/editor/lib/document/blocks/general/Footprint/fields.js +1 -1
- package/dist/editor/lib/document/blocks/general/Grid/fields.js +1 -1
- package/dist/editor/lib/document/blocks/general/Heading/fields.js +1 -1
- package/dist/editor/lib/document/blocks/general/Hero/fields.js +1 -1
- package/dist/editor/lib/document/blocks/general/HeroGroup/fields.js +1 -1
- package/dist/editor/lib/document/blocks/general/HeroSingle/fields.js +1 -1
- package/dist/editor/lib/document/blocks/general/HeroSlide/fields.js +1 -1
- package/dist/editor/lib/document/blocks/general/ImageBlock/fields.js +1 -1
- package/dist/editor/lib/document/blocks/general/Integrations/fields.js +2 -2
- package/dist/editor/lib/document/blocks/general/IntroBleed/fields.js +1 -1
- package/dist/editor/lib/document/blocks/general/KeyFeatures/fields.js +1 -1
- package/dist/editor/lib/document/blocks/general/LocationMap/fields.d.ts +10 -0
- package/dist/editor/lib/document/blocks/general/LocationMap/fields.js +1 -0
- package/dist/editor/lib/document/blocks/general/LogoBlock/fields.js +1 -1
- package/dist/editor/lib/document/blocks/general/Logos/fields.js +1 -1
- package/dist/editor/lib/document/blocks/general/LongRead/fields.js +1 -1
- package/dist/editor/lib/document/blocks/general/Manifesto/fields.js +2 -2
- package/dist/editor/lib/document/blocks/general/Masthead/fields.js +1 -1
- package/dist/editor/lib/document/blocks/general/Mockup/fields.js +2 -2
- package/dist/editor/lib/document/blocks/general/OrderSummary/fields.js +1 -1
- package/dist/editor/lib/document/blocks/general/ParagraphsA/fields.js +1 -1
- package/dist/editor/lib/document/blocks/general/PaymentBadges/fields.js +1 -1
- package/dist/editor/lib/document/blocks/general/PostCard/fields.js +1 -1
- package/dist/editor/lib/document/blocks/general/ProcessSteps/fields.js +1 -1
- package/dist/editor/lib/document/blocks/general/Prose/fields.js +1 -1
- package/dist/editor/lib/document/blocks/general/SectionHeader/fields.js +1 -1
- package/dist/editor/lib/document/blocks/general/Series/fields.js +1 -1
- package/dist/editor/lib/document/blocks/general/SpecStrip/fields.js +1 -1
- package/dist/editor/lib/document/blocks/general/Split/fields.js +1 -1
- package/dist/editor/lib/document/blocks/general/Stats/fields.js +1 -1
- package/dist/editor/lib/document/blocks/general/StatsParagraph/fields.js +1 -1
- package/dist/editor/lib/document/blocks/general/Testimonials/fields.js +1 -1
- package/dist/editor/lib/document/blocks/general/Text/fields.js +1 -1
- package/dist/editor/lib/document/blocks/general/Ticker/fields.js +1 -1
- package/dist/editor/lib/document/blocks/general/Timeline/fields.js +1 -1
- package/dist/editor/lib/document/blocks/general/TimelineTrack/fields.js +1 -1
- package/dist/editor/lib/document/blocks/general/TitleWithButtons/fields.js +1 -1
- package/dist/editor/lib/document/blocks/general/index.d.ts +2 -2
- package/dist/editor/lib/document/blocks/general/index.js +1 -1
- package/dist/editor/lib/document/blocks/shared-fields.d.ts +3 -4
- package/dist/editor/lib/document/blocks/shared-fields.js +1 -1
- package/dist/editor/lib/document/box-fields.d.ts +32 -0
- package/dist/editor/lib/document/box-fields.js +1 -0
- package/dist/editor/lib/document/box-gutter-field.d.ts +1 -0
- package/dist/editor/lib/document/box-gutter-field.js +1 -0
- package/dist/editor/lib/document/card-row-fields.d.ts +1 -1
- package/dist/editor/lib/document/card-row-fields.js +1 -1
- package/dist/editor/lib/document/consent-words-field.d.ts +2 -3
- package/dist/editor/lib/document/consent-words-field.js +1 -1
- package/dist/editor/lib/document/controls.d.ts +34 -94
- package/dist/editor/lib/document/controls.js +1 -1
- package/dist/editor/lib/document/enclosing-section.d.ts +5 -1
- package/dist/editor/lib/document/enclosing-section.js +1 -1
- package/dist/editor/lib/document/field-groups.js +1 -1
- package/dist/editor/lib/document/general-registry.js +1 -1
- package/dist/editor/lib/document/overrides.js +1 -1
- package/dist/editor/lib/document/page-root-fields.d.ts +1 -1
- package/dist/editor/lib/document/page-root-fields.js +1 -1
- package/dist/editor/lib/document/page-root.d.ts +2 -7
- package/dist/editor/lib/document/page-root.js +2 -2
- 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/part-panel-rows.d.ts +75 -0
- package/dist/editor/lib/document/part-panel-rows.js +1 -0
- package/dist/editor/lib/document/passes/inspector.js +1 -1
- package/dist/editor/lib/document/separator-field.d.ts +10 -0
- package/dist/editor/lib/document/separator-field.js +1 -0
- package/dist/editor/lib/document/shell-glyph.d.ts +2 -0
- package/dist/editor/lib/document/shell-glyph.js +1 -0
- package/dist/{format → editor}/lib/host-document-bridge.d.ts +1 -3
- package/dist/editor/lib/host-document-bridge.js +1 -0
- package/dist/editor/lib/pinned-chrome-doc.js +1 -1
- package/dist/editor/lib/sections/new-section-node.js +1 -1
- package/dist/editor/lib/sections/section-dry-run.d.ts +13 -2
- package/dist/editor/lib/sections/section-dry-run.js +2 -2
- package/dist/editor/lib/sections/text-layouts.d.ts +6 -0
- package/dist/editor/lib/sections/text-layouts.js +1 -0
- package/dist/editor/lib/source-rules/part-slider-fills-row.d.ts +1 -0
- package/dist/editor/lib/source-rules/part-slider-fills-row.js +5 -5
- package/dist/format/lib/animation/index.d.ts +1 -0
- package/dist/format/lib/animation/index.js +1 -0
- package/dist/format/lib/animation/loop.d.ts +29 -0
- package/dist/format/lib/animation/loop.js +1 -0
- package/dist/format/lib/content/block-size.d.ts +59 -0
- package/dist/format/lib/content/block-size.js +1 -0
- package/dist/format/lib/content/box-background.js +1 -1
- package/dist/format/lib/content/box-layout.d.ts +16 -37
- package/dist/format/lib/content/box-layout.js +1 -1
- package/dist/format/lib/content/box-link.d.ts +13 -0
- package/dist/format/lib/content/box-link.js +13 -0
- package/dist/format/lib/content/box-separator.d.ts +10 -0
- package/dist/format/lib/content/box-separator.js +1 -0
- package/dist/format/lib/content/box-shape.d.ts +10 -0
- package/dist/format/lib/content/box-shape.js +1 -0
- package/dist/format/lib/content/button-icon.d.ts +1 -0
- package/dist/format/lib/content/button-icon.js +1 -1
- package/dist/format/lib/content/card-corners.d.ts +0 -3
- package/dist/format/lib/content/card-corners.js +1 -1
- package/dist/format/lib/content/card-template.d.ts +2 -0
- package/dist/format/lib/content/card-template.js +1 -1
- package/dist/format/lib/content/cart-drawer.d.ts +7 -0
- package/dist/format/lib/content/cart-drawer.js +1 -1
- package/dist/format/lib/content/chat-launcher.js +1 -1
- package/dist/format/lib/content/container-gap.d.ts +9 -1
- package/dist/format/lib/content/container-gap.js +1 -1
- package/dist/format/lib/content/gallery-card-layout.js +1 -1
- package/dist/format/lib/content/gallery-layout.d.ts +1 -0
- package/dist/format/lib/content/gallery-layout.js +1 -1
- package/dist/format/lib/content/page-background.js +1 -1
- package/dist/format/lib/content/post-date.d.ts +1 -0
- package/dist/format/lib/content/post-date.js +1 -0
- package/dist/format/lib/content/scrim.d.ts +1 -0
- package/dist/format/lib/content/scrim.js +1 -0
- package/dist/format/lib/content/section-min-height.d.ts +4 -0
- package/dist/format/lib/content/section-min-height.js +1 -1
- package/dist/format/lib/content/section-width.d.ts +2 -18
- package/dist/format/lib/content/section-width.js +1 -1
- package/dist/format/lib/content/site-gutter.d.ts +11 -1
- package/dist/format/lib/content/site-gutter.js +1 -1
- package/dist/format/lib/content/tint.d.ts +1 -0
- package/dist/format/lib/content/tint.js +1 -0
- package/dist/format/lib/document/blocks/block-types.d.ts +0 -1
- package/dist/format/lib/document/blocks/general/HeroSingle/meta.js +1 -1
- package/dist/format/lib/document/blocks/general/HeroSlide/meta.js +1 -1
- package/dist/format/lib/document/blocks/general/IntroBleed/meta.js +1 -1
- package/dist/format/lib/document/blocks/general/LocationMap/meta.d.ts +2 -0
- package/dist/format/lib/document/blocks/general/LocationMap/meta.js +1 -0
- package/dist/format/lib/document/blocks/general/SpecStrip/meta.d.ts +5 -0
- package/dist/format/lib/document/blocks/general/SpecStrip/meta.js +1 -1
- package/dist/format/lib/document/blocks/general/Ticker/meta.js +1 -1
- package/dist/format/lib/document/blocks/general/metas.d.ts +1 -0
- package/dist/format/lib/document/blocks/general/metas.js +1 -1
- package/dist/format/lib/document/blocks/general/text-part-shapes.json +30 -0
- package/dist/format/lib/document/box-footer.d.ts +1 -0
- package/dist/format/lib/document/box-footer.js +1 -1
- package/dist/format/lib/document/cap-hero-groups.js +1 -1
- package/dist/format/lib/document/container-blocks.js +1 -1
- package/dist/format/lib/document/editor-site-widths.d.ts +2 -0
- package/dist/format/lib/document/editor-site-widths.js +1 -0
- package/dist/format/lib/document/general-order.d.ts +1 -1
- package/dist/format/lib/document/general-order.js +1 -1
- package/dist/format/lib/document/media-manifest.json +3 -2
- package/dist/format/lib/document/part-inks.js +1 -1
- package/dist/format/lib/document/passes/document-position.js +1 -1
- package/dist/format/lib/document/passes/settings-groups.js +1 -1
- package/dist/format/lib/document/passes/types.d.ts +10 -5
- package/dist/format/lib/document/renamed-props.js +1 -1
- package/dist/format/lib/document/section-catalog.js +2 -2
- package/dist/format/lib/editor-words-catalogue.d.ts +32 -31
- package/dist/format/lib/editor-words-catalogue.js +6 -6
- package/dist/format/lib/fit-words.js +77 -18
- package/dist/format/lib/fonts.d.ts +1 -0
- package/dist/format/lib/fonts.js +1 -1
- package/dist/format/lib/hero-group-placement.js +1 -1
- package/dist/format/lib/hero-texture.d.ts +1 -1
- package/dist/format/lib/hero-texture.js +1 -1
- package/dist/format/lib/locations-grid.d.ts +1 -0
- package/dist/format/lib/locations-grid.js +1 -1
- package/dist/format/lib/map-styles.d.ts +0 -1
- package/dist/format/lib/map-styles.js +1 -1
- package/dist/format/lib/popup/look.js +1 -1
- package/dist/format/lib/popup/text-kinds.d.ts +0 -1
- package/dist/format/lib/popup/text-kinds.js +1 -1
- package/dist/format/lib/sections/hero-overlay.d.ts +1 -1
- package/dist/format/lib/sections/hero-overlay.js +1 -1
- package/dist/format/lib/sections/section-head-placement.d.ts +0 -4
- package/dist/format/lib/sections/section-head-placement.js +1 -1
- package/dist/format/lib/sections/section-presets.js +1 -1
- package/dist/format/lib/sections/strip-shape.d.ts +16 -0
- package/dist/format/lib/sections/strip-shape.js +1 -0
- package/dist/format/lib/sections/timeline-year-shape.d.ts +4 -0
- package/dist/format/lib/sections/timeline-year-shape.js +1 -0
- package/dist/format/lib/source-rules/box-fields-from-easel.d.ts +4 -0
- package/dist/format/lib/source-rules/box-fields-from-easel.js +8 -0
- package/dist/format/lib/source-rules/editor-chrome-note.js +1 -1
- package/dist/format/lib/source-rules/editor-words.js +2 -2
- package/dist/format/lib/source-rules/no-glyph-rows.d.ts +0 -4
- package/dist/format/lib/source-rules/no-glyph-rows.js +4 -4
- package/dist/format/lib/source-rules/one-loop-module.d.ts +7 -0
- package/dist/format/lib/source-rules/one-loop-module.js +6 -0
- package/dist/format/lib/source-rules/one-node-list.d.ts +2 -0
- package/dist/format/lib/source-rules/one-node-list.js +1 -0
- package/dist/format/lib/source-rules/one-page-theme-reader.d.ts +6 -0
- package/dist/format/lib/source-rules/one-page-theme-reader.js +6 -0
- package/dist/format/lib/source-rules/part-style-naming.js +1 -1
- package/dist/format/lib/source-rules/shell-width-token-not-colour.d.ts +5 -0
- package/dist/format/lib/source-rules/shell-width-token-not-colour.js +2 -0
- package/dist/format/lib/source-rules/site-square-by-default.js +3 -3
- package/dist/format/lib/source-rules/support/panel-select-cascade.js +2 -2
- package/dist/format/lib/theme.d.ts +3 -0
- package/dist/format/lib/theme.js +4 -4
- package/dist/render/components/Banner.js +1 -1
- package/dist/render/components/ButtonBlock.d.ts +1 -0
- package/dist/render/components/ButtonBlock.js +1 -1
- package/dist/render/components/CardRowContext.d.ts +4 -4
- package/dist/render/components/CardRowContext.js +1 -1
- package/dist/render/components/Cards.d.ts +1 -0
- package/dist/render/components/Cards.js +1 -1
- package/dist/render/components/ContactLocations.js +2 -14
- package/dist/render/components/FeaturedCover.js +1 -1
- package/dist/render/components/Flex.d.ts +19 -1
- package/dist/render/components/Flex.js +1 -1
- package/dist/render/components/Grid.js +1 -1
- package/dist/render/components/Heading.d.ts +1 -0
- package/dist/render/components/Heading.js +1 -1
- package/dist/render/components/HeroSection.js +1 -1
- package/dist/render/components/HeroSingle.js +1 -1
- package/dist/render/components/HeroSlide.js +1 -1
- package/dist/render/components/HeroVideoPlay.js +1 -1
- package/dist/render/components/ImageBlock.d.ts +1 -2
- package/dist/render/components/ImageBlock.js +1 -1
- package/dist/render/components/InBoxContext.d.ts +2 -0
- package/dist/render/components/InBoxContext.js +1 -0
- package/dist/render/components/KeyFeatures.js +1 -1
- package/dist/render/components/LocationMap.d.ts +23 -0
- package/dist/render/components/LocationMap.js +1 -0
- package/dist/render/components/Logo.js +1 -1
- package/dist/render/components/LongRead.js +1 -1
- package/dist/render/components/Manifesto.d.ts +2 -1
- package/dist/render/components/Manifesto.js +1 -1
- package/dist/render/components/PreviewHeaderContext.d.ts +1 -4
- package/dist/render/components/PreviewHeaderContext.js +1 -1
- package/dist/render/components/PreviewLocationPartContext.d.ts +1 -1
- package/dist/render/components/PreviewLocationPartContext.js +1 -1
- package/dist/render/components/ProcessSteps.js +1 -1
- package/dist/render/components/SectionAnimation.d.ts +16 -3
- package/dist/render/components/SectionAnimation.js +1 -1
- package/dist/render/components/SiteGutterFrame.d.ts +7 -1
- package/dist/render/components/SiteGutterFrame.js +1 -1
- package/dist/render/components/SiteMap.js +1 -1
- package/dist/render/components/SpecStrip.d.ts +2 -4
- package/dist/render/components/SpecStrip.js +1 -1
- package/dist/render/components/Split.d.ts +2 -1
- package/dist/render/components/Split.js +1 -1
- package/dist/render/components/Text.d.ts +2 -0
- package/dist/render/components/Text.js +1 -1
- package/dist/render/components/Ticker.d.ts +5 -4
- package/dist/render/components/Ticker.js +1 -1
- package/dist/render/components/TickerSection.d.ts +5 -4
- package/dist/render/components/TickerSection.js +1 -1
- package/dist/render/components/Timeline.js +1 -1
- package/dist/render/components/TimelineRail.d.ts +55 -0
- package/dist/render/components/TimelineRail.js +1 -0
- package/dist/render/components/TimelineTrack.js +1 -1
- package/dist/render/components/goldPhrases.js +1 -1
- package/dist/render/lib/animation/LoopTrack.d.ts +14 -0
- package/dist/render/lib/animation/LoopTrack.js +1 -0
- package/dist/render/lib/animation/entrance.d.ts +18 -0
- package/dist/render/lib/animation/entrance.js +1 -0
- package/dist/render/lib/document/blocks/general/ButtonBlock/render.js +1 -1
- package/dist/render/lib/document/blocks/general/Flex/render.js +1 -1
- package/dist/render/lib/document/blocks/general/ImageBlock/render.js +1 -1
- package/dist/render/lib/document/blocks/general/LocationMap/render.d.ts +2 -0
- package/dist/render/lib/document/blocks/general/LocationMap/render.js +1 -0
- package/dist/render/lib/document/blocks/general/Manifesto/render.js +1 -1
- package/dist/render/lib/document/blocks/general/SectionHeader/render.js +1 -1
- package/dist/render/lib/document/blocks/general/Split/render.js +1 -1
- package/dist/render/lib/document/blocks/general/Text/render.js +1 -1
- package/dist/render/lib/document/blocks/general/Ticker/render.js +1 -1
- package/dist/render/lib/document/blocks/general/renders.d.ts +1 -0
- package/dist/render/lib/document/blocks/general/renders.js +1 -1
- package/dist/render/lib/document/blocks/general/section-head-looks.d.ts +9 -0
- package/dist/render/lib/document/blocks/general/section-head-looks.js +2 -0
- package/dist/render/lib/document/blocks/general/section-to-box-row-parts.d.ts +9 -1
- package/dist/render/lib/document/blocks/general/section-to-box-row-parts.js +1 -1
- package/dist/render/lib/document/blocks/general/section-to-box-rows-cards.d.ts +2 -0
- package/dist/render/lib/document/blocks/general/section-to-box-rows-cards.js +1 -0
- package/dist/render/lib/document/blocks/general/section-to-box-rows-head.d.ts +4 -0
- package/dist/render/lib/document/blocks/general/section-to-box-rows-head.js +1 -0
- package/dist/render/lib/document/blocks/general/section-to-box-rows-locations.d.ts +2 -0
- package/dist/render/lib/document/blocks/general/section-to-box-rows-locations.js +1 -0
- package/dist/render/lib/document/blocks/general/section-to-box-rows-logos.js +1 -1
- package/dist/render/lib/document/blocks/general/section-to-box-rows-stats.js +1 -1
- package/dist/render/lib/document/blocks/general/section-to-box-rows-strip.d.ts +2 -0
- package/dist/render/lib/document/blocks/general/section-to-box-rows-strip.js +1 -0
- package/dist/render/lib/document/blocks/general/section-to-box-rows-timeline.d.ts +2 -0
- package/dist/render/lib/document/blocks/general/section-to-box-rows-timeline.js +3 -0
- package/dist/render/lib/document/blocks/general/section-to-box-rows.js +1 -1
- package/dist/render/lib/document/page-frame.d.ts +3 -21
- package/dist/render/lib/document/page-frame.js +1 -1
- package/dist/render/lib/document/part-styles.d.ts +14 -13
- package/dist/render/lib/document/part-styles.js +2 -2
- package/dist/render/lib/document/passes/block-size.d.ts +3 -0
- package/dist/render/lib/document/passes/block-size.js +1 -0
- package/dist/render/lib/document/passes/cell-width.d.ts +1 -0
- package/dist/render/lib/document/passes/cell-width.js +1 -1
- package/dist/render/lib/document/passes/clickable-parts.js +1 -1
- package/dist/render/lib/document/passes/corners.js +1 -1
- package/dist/render/lib/document/passes/index.js +1 -1
- package/dist/render/lib/document/passes/section-anchor.d.ts +1 -0
- package/dist/render/lib/document/passes/section-anchor.js +1 -1
- package/dist/render/lib/document/passes/section-animation.d.ts +1 -0
- package/dist/render/lib/document/passes/section-animation.js +1 -1
- package/dist/render/lib/document/passes/section-padding.js +1 -1
- package/dist/render/lib/document/passes/section-width.d.ts +1 -4
- package/dist/render/lib/document/passes/section-width.js +1 -1
- package/dist/render/lib/sections/section-to-box.d.ts +28 -7
- package/dist/render/lib/sections/section-to-box.js +1 -1
- package/dist/render/lib/text-styles/site-text-styles.js +2 -2
- package/package.json +5 -5
- package/dist/editor/components/PartResetDot.d.ts +0 -5
- package/dist/editor/components/PartResetDot.js +0 -1
- package/dist/editor/lib/document/section-width-fields.d.ts +0 -2
- package/dist/editor/lib/document/section-width-fields.js +0 -1
- package/dist/format/lib/content/image-width.d.ts +0 -9
- package/dist/format/lib/content/image-width.js +0 -1
- package/dist/format/lib/content/section-animation.d.ts +0 -13
- package/dist/format/lib/content/section-animation.js +0 -1
- package/dist/format/lib/host-document-bridge.js +0 -1
- package/dist/format/lib/sections/ticker-scroll.d.ts +0 -11
- package/dist/format/lib/sections/ticker-scroll.js +0 -1
|
@@ -110,7 +110,8 @@
|
|
|
110
110
|
/* The site's name sits in the shell's Tooltip (harness UI-24), which carries
|
|
111
111
|
the whole name and where to change it. Its wrapper is block-level and gives
|
|
112
112
|
way like the name did, so the name still ellipsises inside it rather than
|
|
113
|
-
the wrapper's inline box ending the ellipsis.
|
|
113
|
+
the wrapper's inline box ending the ellipsis. The one such wrapper: the
|
|
114
|
+
Coordinates result line (lib/document/controls CoordsField) takes it too. */
|
|
114
115
|
.sf-name-tip {
|
|
115
116
|
position: relative;
|
|
116
117
|
display: block;
|
|
@@ -802,6 +803,21 @@
|
|
|
802
803
|
flex: 1;
|
|
803
804
|
overflow-y: auto;
|
|
804
805
|
scrollbar-gutter: stable;
|
|
806
|
+
/* THE STANDARD THIN SCROLLBAR, NOT A FORCED ONE (Lewis 2026-10-28, section
|
|
807
|
+
panel rule plan §3 1f, option 1). A sized `::-webkit-scrollbar` here forced
|
|
808
|
+
a CLASSIC lane, also on a Mac, and the gutter above held it whether or not
|
|
809
|
+
anything scrolled: the lane sits outside the padding box, where content is
|
|
810
|
+
clipped, so the full-bleed group band stopped 8px short of the panel edge.
|
|
811
|
+
With the standard properties Chrome ignores every `::-webkit-scrollbar`
|
|
812
|
+
rule on this body (easel's 11px `.sf-scroll` one too), and an OVERLAY
|
|
813
|
+
system scrollbar (a Mac on its default setting) takes no lane: the band
|
|
814
|
+
reaches the edge and the strip keeps one width. Where the system scrollbar
|
|
815
|
+
takes space (Windows, "always show"), the gutter still holds a thin lane so
|
|
816
|
+
the strip never moves (`scripts/test-panel-strip-width-stable.ts`); an
|
|
817
|
+
overlay there needs a shell scroll area (a follow-up for the shell). The
|
|
818
|
+
thumb is easel's `--sf-scrollbar`, on a clear track. */
|
|
819
|
+
scrollbar-width: thin;
|
|
820
|
+
scrollbar-color: var(--sf-scrollbar) transparent;
|
|
805
821
|
/* THE SIDE PADDING, ONCE. It was the literal `14px` below and a second
|
|
806
822
|
literal `8px` in the container query further down, and the module rule this
|
|
807
823
|
card adds needed a THIRD copy to cancel it — which is exactly how that rule
|
|
@@ -814,16 +830,11 @@
|
|
|
814
830
|
This sheet keeps no alias of its own; the rules below that reach the
|
|
815
831
|
panel's edge read easel's token. */
|
|
816
832
|
padding-block: var(--space-4) var(--space-20);
|
|
817
|
-
/* THE RIGHT INSET
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
and 12 under a 260px panel. The lane is 8px for that reason: the narrow
|
|
823
|
-
inset must hold all of it (`@supports` below). A browser that draws its
|
|
824
|
-
own scrollbar (Firefox) keeps a 0px lane here and the full inset. */
|
|
825
|
-
--sf-insp-bar-w: 0px;
|
|
826
|
-
--es-insp-pad-end: calc(var(--es-insp-pad-x) - var(--sf-insp-bar-w));
|
|
833
|
+
/* THE RIGHT INSET IS THE INSET (2026-10-28). From 2026-10-20 it was the inset
|
|
834
|
+
less a forced 8px lane; with an overlay scrollbar there is no lane, so the
|
|
835
|
+
end padding is the same 16 (12 under a 260px panel) as the left and the
|
|
836
|
+
head. The band reads this token to cancel exactly it. */
|
|
837
|
+
--es-insp-pad-end: var(--es-insp-pad-x);
|
|
827
838
|
padding-inline-end: var(--es-insp-pad-end);
|
|
828
839
|
|
|
829
840
|
/* THE DROPDOWN ARROW, WRITTEN ONCE — card 66399.c.
|
|
@@ -898,16 +909,6 @@
|
|
|
898
909
|
/* The narrow inset (12px under a 260px panel) is easel's, on the side panel
|
|
899
910
|
(`--es-insp-pad-x`, 14.1.0); every reader here narrows with it. */
|
|
900
911
|
|
|
901
|
-
/* The lane the right inset counts (see `.sf-insp-body`): the body's own
|
|
902
|
-
scrollbar, 8px where this sheet can size it. easel's `.sf-scroll` draws 11px,
|
|
903
|
-
which the 8px narrow inset could not hold. The thumb keeps its transparent
|
|
904
|
-
frame, 2px a side instead of 3. */
|
|
905
|
-
@supports selector(::-webkit-scrollbar) {
|
|
906
|
-
.sf-insp-body { --sf-insp-bar-w: var(--space-8); }
|
|
907
|
-
.sf-insp-body::-webkit-scrollbar { width: var(--sf-insp-bar-w); }
|
|
908
|
-
.sf-insp-body::-webkit-scrollbar-thumb { border-width: var(--space-2); }
|
|
909
|
-
}
|
|
910
|
-
|
|
911
912
|
/* Floating-styled form controls for the old editor library's native fields — and ONLY those.
|
|
912
913
|
|
|
913
914
|
⚠️ A FIELD THE SHELL DRAWS IS SKIPPED: `:not(:where(.rosh-focus-ring))` on
|
|
@@ -1058,7 +1059,7 @@
|
|
|
1058
1059
|
what this looks like is his call, not a later card's.
|
|
1059
1060
|
|
|
1060
1061
|
RULE ZERO, ONE GRAMMAR: `--sf-hover` is already what `.sf-row`, `.sf-chooser`,
|
|
1061
|
-
`.sf-
|
|
1062
|
+
`.sf-seg2 button` and the shell's own `.es-drill` do on hover. The
|
|
1062
1063
|
dropdowns join that vocabulary instead of inventing a fifth one — which is
|
|
1063
1064
|
also why nothing needs to change in `efficient-easel`: the shell already owns the
|
|
1064
1065
|
VALUE (`--es-hover`), and this is the shop agreeing with it.
|
|
@@ -1123,7 +1124,6 @@
|
|
|
1123
1124
|
box-shadow: 0 0 0 3px var(--sf-accent-ring);
|
|
1124
1125
|
}
|
|
1125
1126
|
.sf-multi-caret {
|
|
1126
|
-
font-size: var(--text-2xs);
|
|
1127
1127
|
color: var(--sf-text-secondary);
|
|
1128
1128
|
flex: none;
|
|
1129
1129
|
}
|
|
@@ -1343,8 +1343,7 @@
|
|
|
1343
1343
|
background: var(--sf-accent-ring);
|
|
1344
1344
|
font-weight: 600;
|
|
1345
1345
|
}
|
|
1346
|
-
.sf-secttheme-item:focus-visible
|
|
1347
|
-
.sf-secttheme-done:focus-visible {
|
|
1346
|
+
.sf-secttheme-item:focus-visible {
|
|
1348
1347
|
outline: 2px solid var(--sf-accent);
|
|
1349
1348
|
outline-offset: -2px;
|
|
1350
1349
|
border-radius: var(--radius-sm);
|
|
@@ -1371,15 +1370,9 @@
|
|
|
1371
1370
|
font-weight: 600;
|
|
1372
1371
|
color: var(--sf-field-text);
|
|
1373
1372
|
}
|
|
1373
|
+
/* The shell's `Button` (harness UI-24); placement only. */
|
|
1374
1374
|
.sf-secttheme-done {
|
|
1375
1375
|
margin-left: auto;
|
|
1376
|
-
padding: 2px 4px;
|
|
1377
|
-
border: 0;
|
|
1378
|
-
background: transparent;
|
|
1379
|
-
color: var(--sf-text-secondary);
|
|
1380
|
-
font-size: var(--text-2xs);
|
|
1381
|
-
font-family: var(--sf-font);
|
|
1382
|
-
cursor: pointer;
|
|
1383
1376
|
}
|
|
1384
1377
|
/* ⚠️ THE SHEET'S FIVE COLOUR ROWS ARE `ThemeColourRow` SINCE CARD 66503 — the
|
|
1385
1378
|
shell's `SettingsField` wearing the shop's picker, the same row the Site
|
|
@@ -1903,19 +1896,6 @@
|
|
|
1903
1896
|
white-space: nowrap;
|
|
1904
1897
|
}
|
|
1905
1898
|
|
|
1906
|
-
/* The Position boxes with no row of their own (the Hero Box, Lewis 2026-10-21):
|
|
1907
|
-
the two boxes, then the shared ↺ reset at the end of the same line — the
|
|
1908
|
-
band above already names them, so there is no label row to hold the reset. */
|
|
1909
|
-
.sf-position-line {
|
|
1910
|
-
display: flex;
|
|
1911
|
-
align-items: center;
|
|
1912
|
-
gap: 8px;
|
|
1913
|
-
}
|
|
1914
|
-
.sf-position-line > :first-child {
|
|
1915
|
-
flex: 1;
|
|
1916
|
-
min-width: 0;
|
|
1917
|
-
}
|
|
1918
|
-
|
|
1919
1899
|
/* Text field with a visibility eye: leading type glyph · label · trailing eye.
|
|
1920
1900
|
The eye flips a stored `hidden` flag that drops the element from the slide
|
|
1921
1901
|
render — see controls.tsx. The input stays editable (dimmed) while hidden. */
|
|
@@ -1932,26 +1912,6 @@
|
|
|
1932
1912
|
min-width: 0;
|
|
1933
1913
|
margin-bottom: 0;
|
|
1934
1914
|
}
|
|
1935
|
-
.sf-field-eye {
|
|
1936
|
-
flex: none;
|
|
1937
|
-
width: 22px;
|
|
1938
|
-
height: 22px;
|
|
1939
|
-
border: none;
|
|
1940
|
-
background: transparent;
|
|
1941
|
-
border-radius: var(--radius-md);
|
|
1942
|
-
cursor: pointer;
|
|
1943
|
-
color: var(--sf-muted);
|
|
1944
|
-
display: flex;
|
|
1945
|
-
align-items: center;
|
|
1946
|
-
justify-content: center;
|
|
1947
|
-
opacity: 0.6;
|
|
1948
|
-
transition: background 0.12s, color 0.12s, opacity 0.12s;
|
|
1949
|
-
}
|
|
1950
|
-
.sf-field-eye:hover {
|
|
1951
|
-
background: var(--sf-hover);
|
|
1952
|
-
opacity: 1;
|
|
1953
|
-
color: var(--sf-text-secondary);
|
|
1954
|
-
}
|
|
1955
1915
|
/* Hidden: the element is dropped from the slide, but the input stays so the copy
|
|
1956
1916
|
is preserved and editable. Strike the label + dim the input + light the eye —
|
|
1957
1917
|
mirroring the section tree's hidden-row cue. */
|
|
@@ -1959,10 +1919,6 @@
|
|
|
1959
1919
|
color: var(--sf-muted);
|
|
1960
1920
|
text-decoration: line-through;
|
|
1961
1921
|
}
|
|
1962
|
-
.es-field.is-hidden .sf-field-eye {
|
|
1963
|
-
opacity: 1;
|
|
1964
|
-
color: var(--sf-text-secondary);
|
|
1965
|
-
}
|
|
1966
1922
|
.es-field.is-hidden input,
|
|
1967
1923
|
.es-field.is-hidden textarea {
|
|
1968
1924
|
opacity: 0.5;
|
|
@@ -2066,18 +2022,7 @@
|
|
|
2066
2022
|
align-items: center;
|
|
2067
2023
|
gap: var(--space-12);
|
|
2068
2024
|
}
|
|
2069
|
-
|
|
2070
|
-
width: 26px;
|
|
2071
|
-
height: 26px;
|
|
2072
|
-
border-radius: var(--radius-lg);
|
|
2073
|
-
border: none;
|
|
2074
|
-
cursor: pointer;
|
|
2075
|
-
padding: 0;
|
|
2076
|
-
box-shadow: inset 0 0 0 1px var(--line-strong);
|
|
2077
|
-
}
|
|
2078
|
-
.sf-swatch.is-active {
|
|
2079
|
-
box-shadow: 0 0 0 2px var(--sf-panel), 0 0 0 4px var(--sf-accent);
|
|
2080
|
-
}
|
|
2025
|
+
/* Each swatch is the shell's `ColorSwatch` (harness UI-24). */
|
|
2081
2026
|
.sf-swatch-hex {
|
|
2082
2027
|
font-size: var(--text-2xs);
|
|
2083
2028
|
color: var(--sf-muted);
|
|
@@ -2244,59 +2189,21 @@
|
|
|
2244
2189
|
background: var(--sf-hover);
|
|
2245
2190
|
}
|
|
2246
2191
|
|
|
2247
|
-
/* The
|
|
2248
|
-
|
|
2249
|
-
|
|
2250
|
-
|
|
2251
|
-
|
|
2252
|
-
are
|
|
2253
|
-
alone is the hints switch's base. `test-segmented-controls` §8 stops a new strip. Delete
|
|
2254
|
-
these rules when the last of those two moves.
|
|
2255
|
-
|
|
2256
|
-
`--sf-disabled` on the pressed border is not a disabled state -- it is the one
|
|
2257
|
-
token on the gray ramp that lands where `zinc-400` did, a mid-grey a step
|
|
2258
|
-
darker than a field border. */
|
|
2259
|
-
.sf-rungs {
|
|
2260
|
-
display: flex;
|
|
2261
|
-
width: 100%;
|
|
2262
|
-
gap: 4px;
|
|
2263
|
-
}
|
|
2264
|
-
.sf-rung {
|
|
2265
|
-
flex: 1;
|
|
2266
|
-
padding: 4px 8px;
|
|
2267
|
-
border: 1px solid var(--sf-input-border);
|
|
2268
|
-
border-radius: var(--sf-field-radius);
|
|
2269
|
-
background: var(--sf-field-bg);
|
|
2270
|
-
color: var(--sf-text-secondary);
|
|
2271
|
-
font-size: var(--text-xs);
|
|
2272
|
-
cursor: pointer;
|
|
2273
|
-
}
|
|
2274
|
-
.sf-rung:hover:not(.is-active) {
|
|
2275
|
-
background: var(--sf-hover);
|
|
2276
|
-
}
|
|
2277
|
-
.sf-rung.is-active {
|
|
2278
|
-
border-color: var(--sf-disabled);
|
|
2279
|
-
background: var(--sf-chip-bg);
|
|
2280
|
-
color: var(--sf-text);
|
|
2281
|
-
font-weight: 600;
|
|
2282
|
-
}
|
|
2283
|
-
/* The Card shadow miniature: a tiny card showing the shadow each option casts,
|
|
2284
|
-
drawn in the package's segmented-control glyph slot beside the word (it was
|
|
2285
|
-
`.sf-rung-chip` in the hand-built `.sf-rung--inline` strip until [MERGE] One
|
|
2286
|
-
Pick-One Control, 2026-10-06). Its shadow is set inline, per option, because
|
|
2287
|
-
that IS what the option is showing.
|
|
2192
|
+
/* The Card shadow miniature: a tiny card showing the shadow each option casts, drawn as the glyph of each
|
|
2193
|
+
cell of the shell's IconPicker (it was in a segmented strip's glyph slot, and before that the hand-built
|
|
2194
|
+
`.sf-rung--inline` strip). Its shadow is set inline, per option, because that IS what the option is showing.
|
|
2195
|
+
Its border and fill are the shell's tokens, written as classes on the element (`border-line bg-surface`),
|
|
2196
|
+
NOT this sheet's `--sf-*` variables: the picker's popup is drawn outside the editor, where those variables
|
|
2197
|
+
are not defined, and the "None" cell turned blank.
|
|
2288
2198
|
|
|
2289
|
-
16px wide to sit
|
|
2290
|
-
|
|
2291
|
-
legible at this size. */
|
|
2199
|
+
16px wide to sit in a cell. Small, but it only has to answer "none, a little, or a lot", and the 1px
|
|
2200
|
+
border keeps all three legible at this size. */
|
|
2292
2201
|
.sf-shadow-chip {
|
|
2293
2202
|
display: block;
|
|
2294
2203
|
flex: none;
|
|
2295
2204
|
box-sizing: border-box;
|
|
2296
2205
|
width: 16px;
|
|
2297
2206
|
height: 11px;
|
|
2298
|
-
border: 1px solid var(--sf-disabled);
|
|
2299
|
-
background: var(--sf-field-bg);
|
|
2300
2207
|
}
|
|
2301
2208
|
|
|
2302
2209
|
/* The one control that folds the Basics tab's five explanations (card 66177).
|
|
@@ -2307,19 +2214,6 @@
|
|
|
2307
2214
|
display: flex;
|
|
2308
2215
|
margin-top: var(--space-32);
|
|
2309
2216
|
}
|
|
2310
|
-
/* A rung that is not part of a strip: it sizes to its own word rather than
|
|
2311
|
-
sharing a row, so the `flex: 1` every rung takes has to come back off. */
|
|
2312
|
-
.sf-hints-toggle {
|
|
2313
|
-
display: inline-flex;
|
|
2314
|
-
flex: none;
|
|
2315
|
-
align-items: center;
|
|
2316
|
-
gap: var(--space-8);
|
|
2317
|
-
color: var(--sf-muted);
|
|
2318
|
-
}
|
|
2319
|
-
.sf-hints-toggle svg {
|
|
2320
|
-
flex: none;
|
|
2321
|
-
}
|
|
2322
|
-
|
|
2323
2217
|
/* A heading INSIDE one control, below the row's own label: "Dark surfaces",
|
|
2324
2218
|
"Light surfaces". Deliberately not `.sf-field-group`, which heads a group of
|
|
2325
2219
|
settings -- these head a group of colours inside ONE setting. */
|
|
@@ -2523,33 +2417,6 @@
|
|
|
2523
2417
|
font-size: var(--text-xs);
|
|
2524
2418
|
cursor: pointer;
|
|
2525
2419
|
}
|
|
2526
|
-
/* A rung showing a LETTERFORM rather than a word -- the B and the I. It is the
|
|
2527
|
-
letter's own shape that carries the meaning, so it is sized to be read as a
|
|
2528
|
-
glyph and it keeps its accessible name in `aria-label`. */
|
|
2529
|
-
.sf-rung--glyph {
|
|
2530
|
-
flex: 0 0 34px;
|
|
2531
|
-
font-size: var(--text-sm);
|
|
2532
|
-
line-height: 18px;
|
|
2533
|
-
text-align: center;
|
|
2534
|
-
}
|
|
2535
|
-
.sf-rung--glyph:disabled {
|
|
2536
|
-
color: var(--sf-disabled);
|
|
2537
|
-
cursor: not-allowed;
|
|
2538
|
-
}
|
|
2539
|
-
.sf-rung--glyph:disabled:hover {
|
|
2540
|
-
background: var(--sf-field-bg);
|
|
2541
|
-
}
|
|
2542
|
-
/* The B and the I each sit in the shell's Tooltip (harness UI-24), whose
|
|
2543
|
-
wrapper is the strip's flex item now: it takes the glyph's 34px and the
|
|
2544
|
-
rung fills it. */
|
|
2545
|
-
.sf-rung-tip {
|
|
2546
|
-
position: relative;
|
|
2547
|
-
display: inline-flex;
|
|
2548
|
-
flex: 0 0 34px;
|
|
2549
|
-
}
|
|
2550
|
-
.sf-rung-tip .sf-rung--glyph {
|
|
2551
|
-
flex: 1;
|
|
2552
|
-
}
|
|
2553
2420
|
/* A DISABLED BUTTON GETS NO HOVER AND NO FOCUS, so a reason written on it is
|
|
2554
2421
|
never shown. The reason sits on a focusable wrapper instead, and the button
|
|
2555
2422
|
lets the pointer through to it. Used wherever a disabled control explains
|
|
@@ -2557,9 +2424,6 @@
|
|
|
2557
2424
|
.sf-tip-disabled {
|
|
2558
2425
|
display: inline-flex;
|
|
2559
2426
|
}
|
|
2560
|
-
.sf-rung-tip > .sf-tip-disabled {
|
|
2561
|
-
flex: 1;
|
|
2562
|
-
}
|
|
2563
2427
|
.sf-tip-disabled > button:disabled {
|
|
2564
2428
|
pointer-events: none;
|
|
2565
2429
|
}
|
|
@@ -2736,21 +2600,10 @@
|
|
|
2736
2600
|
margin-top: var(--es-rhythm-between-tight);
|
|
2737
2601
|
}
|
|
2738
2602
|
|
|
2603
|
+
/* The shell's secondary `Button` (harness UI-24); placement only. */
|
|
2739
2604
|
.sf-theme-add {
|
|
2740
|
-
|
|
2741
|
-
align-items: center;
|
|
2742
|
-
gap: var(--space-8);
|
|
2743
|
-
margin-top: 8px;
|
|
2744
|
-
border: 0;
|
|
2745
|
-
background: none;
|
|
2746
|
-
font: inherit;
|
|
2747
|
-
font-size: var(--text-xs);
|
|
2748
|
-
font-weight: 600;
|
|
2749
|
-
color: var(--sf-accent-text);
|
|
2750
|
-
padding: 4px 0;
|
|
2751
|
-
cursor: pointer;
|
|
2605
|
+
margin-top: var(--space-8);
|
|
2752
2606
|
}
|
|
2753
|
-
.sf-theme-add:hover { text-decoration: underline; }
|
|
2754
2607
|
|
|
2755
2608
|
/* `.sf-ink-row` / `.sf-ink-hex` RETIRED — the second colour control.
|
|
2756
2609
|
It drew Page settings' Background, the five rows a theme carries and Theme
|
|
@@ -2865,22 +2718,9 @@
|
|
|
2865
2718
|
gap: var(--space-8);
|
|
2866
2719
|
margin-top: 8px;
|
|
2867
2720
|
}
|
|
2721
|
+
/* The shell's secondary `Button`, medium (32) (harness UI-24); the ratios line up. */
|
|
2868
2722
|
.sf-readability-suggestion {
|
|
2869
|
-
display: inline-flex;
|
|
2870
|
-
align-items: center;
|
|
2871
|
-
gap: var(--space-8);
|
|
2872
|
-
height: 26px;
|
|
2873
|
-
padding: 0 var(--space-12);
|
|
2874
|
-
border: 1px solid var(--sf-input-border);
|
|
2875
|
-
border-radius: var(--sf-field-radius);
|
|
2876
|
-
background: var(--sf-field-bg);
|
|
2877
|
-
color: var(--sf-btn-text);
|
|
2878
|
-
font-size: var(--text-2xs);
|
|
2879
2723
|
font-variant-numeric: tabular-nums;
|
|
2880
|
-
cursor: pointer;
|
|
2881
|
-
}
|
|
2882
|
-
.sf-readability-suggestion:hover {
|
|
2883
|
-
background: var(--sf-hover);
|
|
2884
2724
|
}
|
|
2885
2725
|
.sf-readability-chip {
|
|
2886
2726
|
width: 9px;
|
|
@@ -2898,55 +2738,11 @@
|
|
|
2898
2738
|
being the darkest in the row on a grey track (66138 / 66302), and its suite
|
|
2899
2739
|
bans the tint token package-wide, so the retired look could not travel. */
|
|
2900
2740
|
|
|
2901
|
-
/* Slider
|
|
2902
|
-
|
|
2903
|
-
|
|
2904
|
-
|
|
2905
|
-
|
|
2906
|
-
}
|
|
2907
|
-
/* …AND IT TAKES THE WHOLE ROW WHEREVER THE SHELL STACKS IT (card 66247, owner
|
|
2908
|
-
2026-08-31: the slider fills the row).
|
|
2909
|
-
|
|
2910
|
-
`efficient-easel`'s `SettingsField` puts a control on its own line for one stated
|
|
2911
|
-
reason — its own comment, `src/panel/SettingsField.tsx`: "The row is stacked
|
|
2912
|
-
rather than side-by-side so the control gets the panel's full width — a 308px
|
|
2913
|
-
panel cannot afford a label column AND a usable slider." The slot it stacks
|
|
2914
|
-
into is `.es-field-ctl`, and that slot is `display: flex`.
|
|
2915
|
-
|
|
2916
|
-
A block-level `.sf-slider` fills its parent, which is why the sliders in this
|
|
2917
|
-
panel's OWN `.sf-field` rows always looked right. As a flex ITEM it does not:
|
|
2918
|
-
with no `flex` and no `width` it is `flex: 0 1 auto` and sizes to its content,
|
|
2919
|
-
a bare `input[type=range]` — 129px in Chromium, and 129px whatever the panel
|
|
2920
|
-
is dragged to. Measured before this rule existed (scripts/harness/part-slider-width.tsx):
|
|
2921
|
-
|
|
2922
|
-
panel 220 (MIN_PANEL_W) field content 192 track 129 67% of the row
|
|
2923
|
-
panel 320 (the default) field content 280 track 129 46% of the row
|
|
2924
|
-
panel 560 (MAX_PANEL_W) field content 520 track 129 25% of the row
|
|
2925
|
-
|
|
2926
|
-
So the slot fills the row and the track inside it did not, and the wider a
|
|
2927
|
-
merchant dragged the panel the smaller a fraction of it the control took.
|
|
2928
|
-
|
|
2929
|
-
`flex: 1`, not `width: 100%`, and that is the same call the rule ten lines
|
|
2930
|
-
below already made for the range input inside this box: a percentage width is
|
|
2931
|
-
right only while the slider is alone in the slot, and would overflow the row
|
|
2932
|
-
the day a second thing joined it. Written against `.es-field-ctl` rather than
|
|
2933
|
-
against this panel or that one, because the promise being kept is the SHELL's
|
|
2934
|
-
and every row it stacks is owed it — `PartSettingsPanel`'s Size / Line
|
|
2935
|
-
spacing / Letter spacing and the Site styles Content number are the four this
|
|
2936
|
-
reaches today. Guarded by `scripts/test-part-slider-fills-row.ts`. */
|
|
2937
|
-
.es-field-ctl > .sf-slider {
|
|
2938
|
-
flex: 1;
|
|
2939
|
-
min-width: 0;
|
|
2940
|
-
}
|
|
2941
|
-
/* The track and the typed number are efficient-shell's `Slider` (harness
|
|
2942
|
-
UI-24); until it had one, this sheet drew a 4px rail and a ringed thumb on a
|
|
2943
|
-
native range here, and a readout that was pressed to type into (card
|
|
2944
|
-
66275). The shell's control does both, so those rules went with them. Its
|
|
2945
|
-
box fills `.sf-slider` like the input did. */
|
|
2946
|
-
.sf-slider > .sf-slider-track {
|
|
2947
|
-
flex: 1;
|
|
2948
|
-
min-width: 0;
|
|
2949
|
-
}
|
|
2741
|
+
/* Slider. The box the shell's `Slider` sits in (`.sf-slider`), and the rule that
|
|
2742
|
+
lets it fill the row `SettingsField` stacks it into (card 66247), are
|
|
2743
|
+
efficient-easel's since 24.0.0 (`screen.css`), with the Box rows that draw it
|
|
2744
|
+
(Banner PR 2, 2026-10-28). The notch below stays: it is the website's.
|
|
2745
|
+
Guarded by `scripts/test-part-slider-fills-row.ts`. */
|
|
2950
2746
|
/* THE NOTCH — where the style is, on a track that overrides it (card 66116).
|
|
2951
2747
|
Drag away from it to override; land on it and the override is cleared, so the
|
|
2952
2748
|
way back is on the control the merchant is already holding.
|
|
@@ -3045,9 +2841,6 @@
|
|
|
3045
2841
|
than per-control. (The top bar's buttons are the shell's `Button` since
|
|
3046
2842
|
efficient-easel 1.0 and ring themselves.) */
|
|
3047
2843
|
.sf-seg2 button:focus-visible,
|
|
3048
|
-
.sf-readability-suggestion:focus-visible,
|
|
3049
|
-
.sf-swatch:focus-visible,
|
|
3050
|
-
.sf-field-eye:focus-visible,
|
|
3051
2844
|
.sf-insp-body select:focus-visible {
|
|
3052
2845
|
outline: 2px solid var(--sf-accent);
|
|
3053
2846
|
outline-offset: 2px;
|
|
@@ -3248,6 +3041,13 @@ input.sf-list-marking {
|
|
|
3248
3041
|
.sf-blogsource-status[data-state="error"] {
|
|
3249
3042
|
color: var(--sf-danger);
|
|
3250
3043
|
}
|
|
3044
|
+
/* SourceStatus compact: the status words and their text links (Refresh now, and
|
|
3045
|
+
the edit action where there is one) on ONE line. The links keep the shell's
|
|
3046
|
+
look; this only lets them sit inside the sentence. */
|
|
3047
|
+
.sf-blogsource-link {
|
|
3048
|
+
display: inline;
|
|
3049
|
+
vertical-align: baseline;
|
|
3050
|
+
}
|
|
3251
3051
|
/* The "Open" control inside a source note — the route the sentence names.
|
|
3252
3052
|
[ADD] Source Note Opens The Record, 2026-09-06.
|
|
3253
3053
|
|
|
@@ -3260,23 +3060,6 @@ input.sf-list-marking {
|
|
|
3260
3060
|
It is a real <button> and not an <a>: the editor is embedded and reaches the
|
|
3261
3061
|
admin over postMessage, so there is no href to give. Styled as a link because
|
|
3262
3062
|
that is what it does, named as a button because that is what it is. */
|
|
3263
|
-
.sf-source-open {
|
|
3264
|
-
display: inline;
|
|
3265
|
-
padding: 0;
|
|
3266
|
-
border: 0;
|
|
3267
|
-
background: none;
|
|
3268
|
-
font: inherit;
|
|
3269
|
-
color: var(--sf-accent-text);
|
|
3270
|
-
text-decoration: underline;
|
|
3271
|
-
text-underline-offset: 2px;
|
|
3272
|
-
cursor: pointer;
|
|
3273
|
-
}
|
|
3274
|
-
.sf-source-open:hover { color: var(--sf-accent); }
|
|
3275
|
-
.sf-source-open:focus-visible {
|
|
3276
|
-
outline: 2px solid var(--sf-accent);
|
|
3277
|
-
outline-offset: 2px;
|
|
3278
|
-
border-radius: calc(var(--radius-sm) / 2);
|
|
3279
|
-
}
|
|
3280
3063
|
|
|
3281
3064
|
/* Form picker — the "which form does this section show" control. Reuses the
|
|
3282
3065
|
blog-source card for its frame, buttons and hint, and adds the read-only
|
|
@@ -3749,47 +3532,6 @@ input.sf-list-marking {
|
|
|
3749
3532
|
gap: var(--space-8);
|
|
3750
3533
|
}
|
|
3751
3534
|
|
|
3752
|
-
/* The override mark, half two — and it IS the reset button, which is why it is
|
|
3753
|
-
a real <button> with a name and not a painted dot. The dot shrinks away under
|
|
3754
|
-
the pointer and the reset arrow takes its place, so the affordance is
|
|
3755
|
-
discovered by hovering the only new thing on the row. */
|
|
3756
|
-
.sf-part-mark {
|
|
3757
|
-
width: 18px;
|
|
3758
|
-
height: 18px;
|
|
3759
|
-
flex: none;
|
|
3760
|
-
display: grid;
|
|
3761
|
-
place-items: center;
|
|
3762
|
-
padding: 0;
|
|
3763
|
-
border: 0;
|
|
3764
|
-
border-radius: 50%;
|
|
3765
|
-
background: none;
|
|
3766
|
-
color: var(--sf-accent);
|
|
3767
|
-
cursor: pointer;
|
|
3768
|
-
}
|
|
3769
|
-
.sf-part-mark-dot {
|
|
3770
|
-
transform-origin: center;
|
|
3771
|
-
transition: transform 0.15s ease, opacity 0.15s ease;
|
|
3772
|
-
}
|
|
3773
|
-
.sf-part-mark-arrow {
|
|
3774
|
-
opacity: 0;
|
|
3775
|
-
transition: opacity 0.15s ease;
|
|
3776
|
-
}
|
|
3777
|
-
.sf-part-mark:hover .sf-part-mark-dot,
|
|
3778
|
-
.sf-part-mark:focus-visible .sf-part-mark-dot {
|
|
3779
|
-
transform: scale(0);
|
|
3780
|
-
opacity: 0;
|
|
3781
|
-
}
|
|
3782
|
-
.sf-part-mark:hover .sf-part-mark-arrow,
|
|
3783
|
-
.sf-part-mark:focus-visible .sf-part-mark-arrow {
|
|
3784
|
-
opacity: 1;
|
|
3785
|
-
}
|
|
3786
|
-
@media (prefers-reduced-motion: reduce) {
|
|
3787
|
-
.sf-part-mark-dot,
|
|
3788
|
-
.sf-part-mark-arrow {
|
|
3789
|
-
transition: none;
|
|
3790
|
-
}
|
|
3791
|
-
}
|
|
3792
|
-
|
|
3793
3535
|
/* The copy box at the TOP of the drill (card 8819). Clicking a word drills
|
|
3794
3536
|
straight to its editor, so the box is the first thing on the part screen —
|
|
3795
3537
|
right under the way back, above the style it follows. It is the plain copy box
|
|
@@ -3873,31 +3615,6 @@ input.sf-list-marking {
|
|
|
3873
3615
|
THE STRIP FILLS BY TILE WIDTH, NOT BY A COLUMN COUNT. `auto-fill` with a 58px
|
|
3874
3616
|
minimum gives four across the 320px panel and three at the 220px minimum, so
|
|
3875
3617
|
nothing is cut off and nothing scrolls sideways at either width. */
|
|
3876
|
-
.sf-gallery-filter {
|
|
3877
|
-
display: flex;
|
|
3878
|
-
gap: var(--space-8);
|
|
3879
|
-
flex-wrap: wrap;
|
|
3880
|
-
}
|
|
3881
|
-
.sf-gallery-filter button {
|
|
3882
|
-
border: 1px solid var(--sf-input-border);
|
|
3883
|
-
background: var(--sf-field-bg);
|
|
3884
|
-
border-radius: 999px;
|
|
3885
|
-
padding: var(--space-4) var(--space-12);
|
|
3886
|
-
font-size: var(--text-xs);
|
|
3887
|
-
font-weight: 600;
|
|
3888
|
-
color: var(--sf-icon);
|
|
3889
|
-
cursor: pointer;
|
|
3890
|
-
transition: background 0.12s, color 0.12s, border-color 0.12s;
|
|
3891
|
-
}
|
|
3892
|
-
.sf-gallery-filter button:hover {
|
|
3893
|
-
background: var(--sf-hover);
|
|
3894
|
-
}
|
|
3895
|
-
.sf-gallery-filter button[aria-pressed="true"] {
|
|
3896
|
-
background: var(--sf-accent);
|
|
3897
|
-
border-color: var(--sf-accent);
|
|
3898
|
-
color: var(--sf-on-accent);
|
|
3899
|
-
}
|
|
3900
|
-
|
|
3901
3618
|
/* The strip itself — the grid, the tiles, the chosen tile's edge and ring, each
|
|
3902
3619
|
tile's hover name — is efficient-shell's `PictureTiles` (one copy since the
|
|
3903
3620
|
header's country picker became its third row). What stays here is where the
|
|
@@ -3926,27 +3643,12 @@ input.sf-list-marking {
|
|
|
3926
3643
|
or a second control beside the strip. `min-width: 0` because a flex item's
|
|
3927
3644
|
automatic minimum is its content size, which is what stops it shrinking.
|
|
3928
3645
|
|
|
3929
|
-
|
|
3930
|
-
|
|
3931
|
-
same
|
|
3932
|
-
|
|
3933
|
-
|
|
3934
|
-
|
|
3935
|
-
inside at any width nobody happened to measure.
|
|
3936
|
-
|
|
3937
|
-
⚠️ SO THIS IS A DEFECT A HEIGHT RULE CANNOT CATCH, AND THAT IS THE POINT.
|
|
3938
|
-
The card that made this change stops at a row moving more than about 6px
|
|
3939
|
-
(GG, 2026-09-22). This row moved 1.5px, in the RIGHT direction, and was
|
|
3940
|
-
wrong. Measuring how tall a row stands cannot see a control that quietly
|
|
3941
|
-
stopped filling it — only asking the width can, which is why
|
|
3942
|
-
`scripts/probe-settings-rows-shared.mjs` now asks it of every row on both
|
|
3943
|
-
sides, and why that question found both of these on its first run.
|
|
3944
|
-
|
|
3945
|
-
A rule that fixed the strip and left the chips would be a trap wearing a fix
|
|
3946
|
-
— which is exactly what the shell says about naming both of its own `-fit`
|
|
3947
|
-
wrappers. This is the FOURTH instance of this collapse in this repo:
|
|
3948
|
-
`.sf-slider` carries the same two lines from card 66247, and the shell
|
|
3949
|
-
carries them for `.es-tabs-fit` and `.es-segs-fit`.
|
|
3646
|
+
The `Photos in a row` chips were the second control on this list until they
|
|
3647
|
+
became the shared `SettingsSegmented`, whose own `.es-segs-fit` carries the
|
|
3648
|
+
same two lines; they now sit inside the Gallery Layout popup, and only the
|
|
3649
|
+
Block widths strip still uses this selector. Measuring how tall a row stands
|
|
3650
|
+
cannot see a control that quietly stopped filling it — only asking the width
|
|
3651
|
+
can, which is what `scripts/probe-settings-rows-shared.mjs` does.
|
|
3950
3652
|
|
|
3951
3653
|
`.sf-linkstack` was on this list until the link field became the shared
|
|
3952
3654
|
picker ([MERGE] One Link Picker For Both Editors): its stack is now the
|
|
@@ -3954,8 +3656,7 @@ input.sf-list-marking {
|
|
|
3954
3656
|
Every consumer control that is a flex or grid box written for a block row
|
|
3955
3657
|
belongs on this selector; the day one is fixed somewhere else instead, the
|
|
3956
3658
|
list stops being the place to look. */
|
|
3957
|
-
.es-field-ctl > .sf-gallery-layouts
|
|
3958
|
-
.es-field-ctl > .sf-gallery-filter {
|
|
3659
|
+
.es-field-ctl > .sf-gallery-layouts {
|
|
3959
3660
|
flex: 1 1 auto;
|
|
3960
3661
|
min-width: 0;
|
|
3961
3662
|
}
|
|
@@ -3980,11 +3681,41 @@ input.sf-list-marking {
|
|
|
3980
3681
|
background: var(--sf-accent);
|
|
3981
3682
|
}
|
|
3982
3683
|
|
|
3983
|
-
/*
|
|
3984
|
-
.
|
|
3684
|
+
/* The Entrance kinds (lib/animation/entrance-fields): the shell's IconPicker, three
|
|
3685
|
+
across. Each picture is the approved drawing of its kind, and it plays that kind
|
|
3686
|
+
when the mouse rests on its cell, by the page's engine and keyframes
|
|
3687
|
+
(efficient-shell/motion.css). The word under a drawing shows in the popup only;
|
|
3688
|
+
the closed button names the kind beside it, so there it is hidden (the closed
|
|
3689
|
+
button is inside the panel's control slot, the popup is not). */
|
|
3690
|
+
.sf-entrance-pic {
|
|
3691
|
+
display: flex;
|
|
3692
|
+
flex-direction: column;
|
|
3693
|
+
align-items: center;
|
|
3694
|
+
gap: 2px;
|
|
3695
|
+
}
|
|
3696
|
+
.sf-entrance-stage {
|
|
3697
|
+
display: flex;
|
|
3698
|
+
align-items: center;
|
|
3699
|
+
justify-content: center;
|
|
3700
|
+
width: 40px;
|
|
3701
|
+
height: 40px;
|
|
3702
|
+
overflow: hidden;
|
|
3703
|
+
}
|
|
3704
|
+
.sf-entrance-stage > i {
|
|
3705
|
+
display: block;
|
|
3706
|
+
line-height: 0;
|
|
3707
|
+
}
|
|
3708
|
+
.sf-entrance-cap {
|
|
3985
3709
|
font-size: var(--text-2xs);
|
|
3986
|
-
|
|
3987
|
-
|
|
3710
|
+
line-height: 1;
|
|
3711
|
+
}
|
|
3712
|
+
.es-field-ctl .sf-entrance-cap {
|
|
3713
|
+
display: none;
|
|
3714
|
+
}
|
|
3715
|
+
.es-field-ctl .sf-entrance-stage {
|
|
3716
|
+
width: auto;
|
|
3717
|
+
height: auto;
|
|
3718
|
+
overflow: visible;
|
|
3988
3719
|
}
|
|
3989
3720
|
|
|
3990
3721
|
/* ── Side panel heads (components/SidePanelHead) ─────────────────────────
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{useEffect as b,useMemo as w,useRef as k}from"react";import{useEasel as O}from"efficient-easel/easel";import{useEaselHost as B}from"efficient-easel/screen/lib/host";import{applyPageEdits as D,describeBlocks as H,describeSelection as J}from"
|
|
1
|
+
"use client";import{useEffect as b,useMemo as w,useRef as k}from"react";import{useEasel as O}from"efficient-easel/easel";import{useEaselHost as B}from"efficient-easel/screen/lib/host";import{applyPageEdits as D,describeBlocks as H,describeSelection as J}from"../lib/host-document-bridge.js";import{nonEmptyString as N}from"../../format/lib/non-empty-string.js";const p=t=>N(t.requestId)??null;function $(){const t=B(),{appState:n,selectedItem:I,dispatch:l,history:f,config:S}=O(s=>s),i=S,g=k({appState:n,dispatch:l,history:f,blockConfig:i});g.current={appState:n,dispatch:l,history:f,blockConfig:i};const c=k(new Map),h=I?.props?.id,a=w(()=>J(i,n.data,h),[i,n.data,h]),q=a?JSON.stringify(a):"";b(()=>{t.connected&&t.send("storefront-editor:selection",{selection:a})},[t,q]),b(()=>t.subscribe(s=>{const{appState:d,dispatch:y,history:u,blockConfig:m}=g.current;switch(s.type){case"storefront-editor:request-document":{const e=p(s);if(!e)return;t.send("storefront-editor:document",{requestId:e,document:d.data,blocks:H(m)});return}case"storefront-editor:apply-page-edits":{const e=p(s);if(!e)return;const r=Array.isArray(s.ops)?s.ops:[],o=r.length?D(m,d.data,r,E=>`${E}-${crypto.randomUUID()}`):{ok:!1,reason:"no changes"};o.ok&&(y({type:"setData",data:o.document,recordHistory:!0}),c.current.set(e,JSON.stringify(o.document.content??[]))),t.send("storefront-editor:page-edits-result",{requestId:e,applied:o.ok,reason:o.ok?null:o.reason});return}case"storefront-editor:undo-page-edits":{const e=p(s);if(!e)return;const r=c.current.get(e),o=r!==void 0&&r===JSON.stringify(d.data.content??[]);o&&u.hasPast&&(u.back(),c.current.delete(e)),t.send("storefront-editor:page-edits-result",{requestId:e,applied:o&&u.hasPast,reason:o?null:"the page has changed since"});return}case"storefront-editor:set-right-panel":typeof s.shown=="boolean"&&y({type:"setUi",ui:{rightSideBarVisible:s.shown}});return;default:return}}),[t])}export{$ as useHostDocumentBridge};
|