Resolves a cascade of TYPO3 v14 breaking changes that left every VITEC plugin's JSON output silently empty: 1. `list_type` column dropped — all renderer page-discovery queries now filter by `CType = 'vitec_X'`. 2. `#[AsAllowedCallable]` attribute added to every public render() — without it v14 throws AllowedCallableException, which headless silently filters via its "Oops, an error occurred!" guard. 3. `$GLOBALS['TSFE']->id` is null inside JSON cObj context — page id now read from the `frontend.page.information` request attribute (TSFE fallback kept for legacy entry points). 4. page.tsconfig wizard items migrated to `CType = vitec_X` directly (legacy `CType=list, list_type=...` no longer exists in v14). 5. ContainerChildrenProcessor + ContentElementResolver dispatch the PLUGIN_RENDERERS map by CType (primary) with list_type fallback. Beyond the bug fix this commit also contains: - Datasheets renderer rewritten to "products with newest datasheet" semantics (filtered via Download.hideondatasheets). - New vitec/card content block — multi-purpose card with backend preview and layout/background/aspect/alignment/border/shadow options. - New vitec_container CType (b13 single-column container, FlexForm cssClass propagated into the JSON envelope). - ContentElementResolver service for contentelement/contentelementcta link resolution; ContainerChildrenProcessor for nested plugin resolution inside b13 containers. - Vitecset setup.typoscript: ContentElement import moved to top so lib.contentElement is defined before VITEC's tt_content blocks. - Cleanup: 98 .bak.<timestamp> debugging backups removed; *.bak.* and /public/_assets_install/ added to .gitignore. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2 lines
6.7 KiB
CSS
2 lines
6.7 KiB
CSS
:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:#ffffffde;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#242424;font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;font-weight:400;line-height:1.5}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}a{color:#646cff;-webkit-text-decoration:inherit;text-decoration:inherit;font-weight:500}a:hover{color:#535bf2}body{place-items:center;min-width:320px;min-height:100vh;margin:0;display:flex}h1{font-size:3.2em;line-height:1.1}button{cursor:pointer;background-color:#1a1a1a;border:1px solid #0000;border-radius:8px;padding:.6em 1.2em;font-family:inherit;font-size:1em;font-weight:500;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.vitec-element{box-shadow:none;color:inherit;background-color:#0000;background-image:none;border:none;border-radius:0;margin-top:.5rem;margin-bottom:.5rem;padding:0;position:relative}@media (min-width:900px){.vitec-element--full-width{width:calc(100% + 4rem);margin-left:-2rem}}.vitec-element__stack{flex-direction:column;display:flex}.vitec-space-before--extra-small{margin-top:.5rem}.vitec-space-before--small{margin-top:1rem}.vitec-space-before--medium{margin-top:2.5rem}.vitec-space-before--large{margin-top:4rem}.vitec-space-before--extra-large{margin-top:6rem}.vitec-space-after--extra-small{margin-bottom:.5rem}.vitec-space-after--small{margin-bottom:1rem}.vitec-space-after--medium{margin-bottom:2.5rem}.vitec-space-after--large{margin-bottom:4rem}.vitec-space-after--extra-large{margin-bottom:6rem}*,:before,:after{box-sizing:border-box}body,html{color:#1f2937;background:#f4f7fb;width:100%;min-height:100vh;margin:0;font-family:Roboto,system-ui,-apple-system,sans-serif}#page{flex-direction:column;width:100%;min-height:100vh;display:flex}#header{color:#f8fafc;background:linear-gradient(120deg,#26358cbf 20%,#f4793680 100%);flex-direction:column;justify-content:center;gap:1rem;width:100%;min-height:300px;padding:1rem 1.75rem;display:flex;box-shadow:0 12px 30px #0f274947}.header-chrome{z-index:2;flex-direction:column;gap:1rem;display:flex;position:relative}#header.header--with-hero{min-height:0;box-shadow:none;background:0 0;justify-content:flex-start;gap:0;padding:0;position:relative;overflow:hidden}#header.header--with-hero .header-chrome{padding:1.65rem 1.75rem 0;position:absolute;inset:0 0 auto}.header-hero{color:#f8fafc;background:#0f172a;width:100%;min-height:620px;margin-left:0;position:relative;top:0;overflow:hidden}.header-hero-media,.header-hero-overlay{position:absolute;inset:0}.header-hero-media{opacity:.45;background-position:50%;background-repeat:no-repeat;background-size:cover}.header-hero-overlay{background:linear-gradient(120deg,#26358cc7 20%,#f4793694 100%)}.header-hero-content{z-index:1;align-items:center;min-height:620px;padding-top:9.5rem;padding-bottom:4rem;display:flex;position:relative}.header-hero-copy{line-height:1.6}.header-hero-copy p{margin:0 0 1rem}.header-hero-copy p:last-of-type{margin-bottom:0}.header-hero-copy a{color:inherit}.header-hero-copy mark{color:inherit;background:#facc15d9;padding:0 .2rem}.header-hero-image-sr{clip:rect(0,0,0,0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.header-top-row{justify-content:space-between;align-items:center;gap:1rem;width:100%;display:flex}.header-logo-link{align-items:center;display:inline-flex}.header-logo{object-fit:contain;width:auto;height:34px}.mobile-nav-toggle{color:#f8fafc;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#0f172a33;border:1px solid #f8fafc2e;border-radius:999px;min-width:auto;padding:.6rem;display:none}.mobile-nav-toggle:hover{background:#0f172a52}.mobile-nav-toggle__icon{flex-direction:column;justify-content:space-between;width:1.3rem;height:1rem;display:inline-flex}.mobile-nav-toggle__icon span{transform-origin:50%;background:currentColor;border-radius:999px;width:100%;height:2px;transition:transform .2s,opacity .2s;display:block}.mobile-nav-toggle__icon--open span:first-child{transform:translateY(7px)rotate(45deg)}.mobile-nav-toggle__icon--open span:nth-child(2){opacity:0}.mobile-nav-toggle__icon--open span:nth-child(3){transform:translateY(-7px)rotate(-45deg)}.mobile-nav-drawer{color:#f8fafc;background:linear-gradient(#0f172a 0%,#1e3a8a 100%);border-left:1px solid #f8fafc1f;width:min(24rem,100vw)}.mobile-nav-drawer__inner{min-height:100%;padding:1.25rem}.mobile-nav-drawer__header{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.25rem;display:flex}.mobile-nav-close{color:#f8fafc;border:1px solid #f8fafc24;border-radius:999px;min-width:auto;padding:.35rem .85rem}.mobile-nav-section-title{color:#e2e8f0b8;text-transform:uppercase;letter-spacing:.08em;margin-bottom:.6rem}.mobile-nav-item{border:1px solid #0000;border-radius:18px;margin-bottom:.35rem;padding:.75rem .9rem}.mobile-nav-item .MuiListItemText-primary{font-weight:600}.mobile-nav-item .MuiListItemText-secondary{color:#e2e8f0b8}.mobile-nav-item.Mui-selected,.mobile-nav-item:hover{background:#ffffff14;border-color:#f8fafc1f}.mobile-nav-item--secondary .MuiListItemText-primary{font-weight:500}#meta-menu ul,#main-navigation ul{flex-wrap:wrap;align-items:center;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}#meta-menu ul{justify-content:flex-end;gap:.5rem}#main-navigation ul{justify-content:center}#meta-menu a,#main-navigation a{color:#f8fafc;border-radius:999px;align-items:center;padding:.35rem .7rem;font-weight:500;text-decoration:none;transition:background-color .2s,color .2s;display:inline-flex}#meta-menu li.active a,#main-navigation li.active a,#meta-menu a:hover,#main-navigation a:hover{color:#fff;background-color:#ffffff2e}.main-content{flex:1;padding:4rem 0}.vitecMainContainer{background:#fff;border-radius:16px;margin-top:-2.5rem;box-shadow:0 16px 36px #0f27491f}.vitecMainContainer--withHero{margin-top:0}@media (max-width:768px){#header{min-height:130px;padding:.85rem}.header-top-row{align-items:center}.mobile-nav-toggle{display:inline-flex}.header-logo{height:28px}#meta-menu,#main-navigation{display:none}#header.header--with-hero{padding:0}#header.header--with-hero .header-chrome{padding:1.15rem .85rem 0}.mobile-nav-drawer{width:min(100vw,22rem)}.header-hero{width:100%;min-height:560px;margin-left:0}.header-hero-content{min-height:560px;padding-top:10rem;padding-bottom:2.5rem}.vitecMainContainer{border-radius:12px;margin-top:-2rem}.vitecMainContainer--withHero{margin-top:0}}#footer{color:#f8fafc;background:#020617}
|