- layout_variant gains the value "flipcard" (onChange: reload) - "Card Back" palette in the Layout tab directly below layout_variant: back_headline (Text, max 100) and back_text (Textarea, richtext), displayCond-gated on the flipcard layout; serialised unconditionally - the frontend keys the back face on layout_variant, not on field presence (spec 7.7) - backend preview: flipcard badge + back-headline line - repair "[ Missing label ]" in the card selects: layout_variant / background_variant are columns SHARED with vitec_ctabanner, and the index-wise Content Blocks merge dropped four card-only values from the base item list. Overrides/tt_content.php now pins the base column to the cta-banner lists and hands vitec_card its full lists via columnsOverrides (respected by FormEngine and DataHandler; an items override can only extend, never shorten - array_replace_recursive) - spec v1.19 incl. head-matter fix (version table was stuck at 1.17) Server follow-up: database:updateschema "*.add,*.change" + cache:flush Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
231 lines
5.6 KiB
YAML
Executable File
231 lines
5.6 KiB
YAML
Executable File
name: vitec/card
|
|
group: vitec_custom_components
|
|
prefixFields: true
|
|
prefixType: vendor
|
|
|
|
fields:
|
|
# ──────────────────────────────────────────────────────────────────────
|
|
- identifier: tab_content
|
|
type: Tab
|
|
label: Content
|
|
|
|
- identifier: eyebrow
|
|
type: Text
|
|
max: 50
|
|
|
|
- identifier: header_section
|
|
type: Palette
|
|
label: Header
|
|
fields:
|
|
- identifier: header
|
|
useExistingField: true
|
|
required: true
|
|
- type: Linebreak
|
|
- identifier: header_layout
|
|
useExistingField: true
|
|
- identifier: header_position
|
|
useExistingField: true
|
|
- identifier: date
|
|
useExistingField: true
|
|
- type: Linebreak
|
|
- identifier: header_link
|
|
useExistingField: true
|
|
- type: Linebreak
|
|
- identifier: subheader
|
|
useExistingField: true
|
|
|
|
|
|
- identifier: bodytext
|
|
useExistingField: true
|
|
enableRichtext: true
|
|
|
|
- identifier: image
|
|
type: File
|
|
minitems: 0
|
|
maxitems: 1
|
|
allowed: common-image-types
|
|
|
|
- identifier: icon
|
|
type: File
|
|
minitems: 0
|
|
maxitems: 1
|
|
allowed: svg,png
|
|
|
|
- identifier: primary_cta
|
|
type: Link
|
|
allowedTypes:
|
|
- page
|
|
- url
|
|
- file
|
|
- email
|
|
|
|
- identifier: primary_cta_label
|
|
type: Text
|
|
max: 30
|
|
default: 'Learn more'
|
|
|
|
- identifier: secondary_cta
|
|
type: Link
|
|
allowedTypes:
|
|
- page
|
|
- url
|
|
- file
|
|
- email
|
|
|
|
- identifier: secondary_cta_label
|
|
type: Text
|
|
max: 30
|
|
|
|
- identifier: Vitec/ButtonStyle
|
|
type: Basic
|
|
|
|
- identifier: Vitec/SecondaryButtonStyle
|
|
type: Basic
|
|
|
|
- identifier: card_link
|
|
type: Link
|
|
allowedTypes:
|
|
- page
|
|
- url
|
|
- file
|
|
- email
|
|
|
|
# ──────────────────────────────────────────────────────────────────────
|
|
- identifier: tab_layout
|
|
type: Tab
|
|
label: Layout
|
|
|
|
- identifier: layout_variant
|
|
type: Select
|
|
renderType: selectSingle
|
|
default: vertical
|
|
# displayCond of the card-back fields depends on this value
|
|
onChange: reload
|
|
items:
|
|
- label: Vertical (image top, content below)
|
|
value: vertical
|
|
- label: Horizontal (image left, content right)
|
|
value: horizontal
|
|
- label: Horizontal Reverse (content left, image right)
|
|
value: horizontal_reverse
|
|
- label: Image Overlay (text over image)
|
|
value: image_overlay
|
|
- label: Text Only (no image)
|
|
value: text_only
|
|
- label: Icon Card (icon focused, text below)
|
|
value: icon_card
|
|
- label: Feature (large highlighted card)
|
|
value: feature
|
|
- label: Compact (small card, tight spacing)
|
|
value: compact
|
|
- label: Flip Card (front / back)
|
|
value: flipcard
|
|
|
|
# Card back - only shown when layout_variant = flipcard. displayCond needs
|
|
# the storage column (vitec_ vendor prefix); the JSON keys stay the plain
|
|
# identifiers back_headline / back_text and are emitted on EVERY card
|
|
# (empty when unset) - the frontend keys the back face on layout_variant.
|
|
- identifier: card_back
|
|
type: Palette
|
|
label: Card Back
|
|
description: Reverse side of the card. Only used (and only shown) when the layout variant is "Flip Card".
|
|
fields:
|
|
- identifier: back_headline
|
|
type: Text
|
|
max: 100
|
|
displayCond: 'FIELD:vitec_layout_variant:=:flipcard'
|
|
- type: Linebreak
|
|
- identifier: back_text
|
|
type: Textarea
|
|
enableRichtext: true
|
|
displayCond: 'FIELD:vitec_layout_variant:=:flipcard'
|
|
|
|
- identifier: background_variant
|
|
type: Select
|
|
renderType: selectSingle
|
|
default: none
|
|
items:
|
|
- label: None
|
|
value: none
|
|
- label: Orange
|
|
value: orange
|
|
- label: Blue
|
|
value: blue
|
|
- label: Graphite
|
|
value: graphite
|
|
- label: Midnight
|
|
value: midnight
|
|
- label: Light (neutral)
|
|
value: light
|
|
- label: Dark (neutral)
|
|
value: dark
|
|
|
|
- identifier: image_aspect_ratio
|
|
type: Select
|
|
renderType: selectSingle
|
|
default: auto
|
|
items:
|
|
- label: Auto (original)
|
|
value: auto
|
|
- label: Square (1:1)
|
|
value: '1_1'
|
|
- label: Landscape (4:3)
|
|
value: '4_3'
|
|
- label: Widescreen (16:9)
|
|
value: '16_9'
|
|
- label: Portrait (3:4)
|
|
value: '3_4'
|
|
|
|
- identifier: text_alignment
|
|
type: Select
|
|
renderType: selectSingle
|
|
default: left
|
|
items:
|
|
- label: Left
|
|
value: left
|
|
- label: Center
|
|
value: center
|
|
- label: Right
|
|
value: right
|
|
|
|
- identifier: border_style
|
|
type: Select
|
|
renderType: selectSingle
|
|
default: none
|
|
items:
|
|
- label: None
|
|
value: none
|
|
- label: Soft (subtle line)
|
|
value: soft
|
|
- label: Hard (thick line)
|
|
value: hard
|
|
- label: Dashed
|
|
value: dashed
|
|
|
|
- identifier: shadow
|
|
type: Select
|
|
renderType: selectSingle
|
|
default: none
|
|
items:
|
|
- label: None
|
|
value: none
|
|
- label: Soft
|
|
value: soft
|
|
- label: Medium
|
|
value: medium
|
|
- label: Strong
|
|
value: strong
|
|
|
|
# ──────────────────────────────────────────────────────────────────────
|
|
- identifier: tab_advanced
|
|
type: Tab
|
|
label: Advanced
|
|
|
|
- identifier: cssClass
|
|
type: Text
|
|
max: 100
|
|
|
|
- identifier: debug
|
|
type: Checkbox
|
|
default: 0
|