Version 5.0.0 beta 6

This commit is contained in:
Neo committed 2025-12-19 17:12:27 -08:00
1 parent 57d9db6ce2
commit fa2a720105
115 files changed
+1823 -1147

No files matched your search

+158 -168
View File
@@ -5763,7 +5763,7 @@
<li>
<a href='#' class='ipsButton ipsButton--soft ipsButton--small' data-ipsMenu id='elEditorAttach_media{expression="md5($name)"}'>{lang="editor_attach_other"} <i class='fa-solid fa-caret-down'></i></a>
<ul class='ipsMenu ipsMenu_auto ipsHide' id='elEditorAttach_media{expression="md5($name)"}_menu'>
<li class='ipsMenu_item'><a href='#' data-ipsDialog data-ipsDialog-fixed data-ipsDialog-forceReload data-ipsDialog-title='{lang="editor_insert_existing_file"}' data-ipsDialog-url="{url="app=core&module=system&controller=editor&do=myMedia&postKey={$editor}&editorId={$name}" csrf="1"}">{lang="editor_insert_existing_file"}</a></li>
<li class='ipsMenu_item'><a href='#' data-ipsDialog data-ipsDialog-fixed data-ipsDialog-forceReload data-ipsDialog-title='{lang="editor_insert_existing_file"}' data-ipsDialog-url="{url="app=core&module=system&controller=editor&do=myMedia&postKey={$editor}&editorId={$name}" csrf="1"}">{lang="editor_insert_existing_file"}</a>
</ul>
</li>
{{endif}}
@@ -6636,7 +6636,7 @@
{{if !\IPS\Request::i()->isAjax() }}</div>{{endif}}]]></template>
<template template_group="forms" template_name="postingInformation" template_data="$guestPostBeforeRegister, $modQueued, $standalone=false" template_location="front" template_app="core"><![CDATA[{{if !member.member_id}}
{{if !$standalone}}
<div class='cGuestTeaser'>
<div class='cGuestTeaser i-margin-bottom_3'>
<h2 class='ipsTitle ipsTitle--h3'>{lang="guest_post_header"}</h2>
{{endif}}
<p>
@@ -6651,7 +6651,6 @@
{{endif}}
</p>
{{if !$standalone}}
<hr class="ipsHr i-margin-block_3">
</div>
{{endif}}
{{elseif $modQueued}}
@@ -6889,37 +6888,37 @@
{{endforeach}}
</ul>
</form>]]></template>
<template template_group="forms" template_name="reviewTemplate" template_data="$id, $action, $elements, $hiddenValues, $actionButtons, $uploadField, $class=''" template_location="front" template_app="core"><![CDATA[<div class='ipsComposeArea i-padding_3' {{if \IPS\Member::loggedIn()->member_id}}data-controller='core.front.core.reviewForm'{{endif}}>
<div class='ipsComposeArea__photo'>{template="userPhoto" group="global" app="core" params="\IPS\Member::loggedIn(), 'fluid'"}</div>
<div class='ipsComposeArea_editor'>
<form accept-charset='utf-8' class="ipsFormWrap ipsFormWrap--review" action="{$action->setQueryString( '_review', 1 )}" method="post" {{if $uploadField}}enctype="multipart/form-data"{{endif}}>
<input type="hidden" name="{$id}_submitted" value="1">
{{foreach $hiddenValues as $k => $v}}
<input type="hidden" name="{$k}" value="{$v}">
{{endforeach}}
{{if $uploadField}}
<input type="hidden" name="MAX_FILE_SIZE" value="{$uploadField}">
<input type="hidden" name="plupload" value="{expression="md5( mt_rand() )"}">
{{endif}}
{{if !isset( \IPS\Request::i()->_review ) and \IPS\Member::loggedIn()->member_id}}
<div data-role='reviewIntro'>
<h3 class="i-margin-bottom_2"><strong class="i-color_hard i-font-weight_600">{lang="review_intro_1" sprintf="\IPS\Member::loggedIn()->name"}</strong> <span class='i-color_soft i-font-weight_500'>{lang="review_intro_2"}</span></h3>
<a href='#' class='ipsButton ipsButton--primary ipsButton--small ipsJS_show' data-action='writeReview'><i class="fa-regular fa-pen-to-square"></i><span>{lang="write_a_review"}</span></a>
</div>
{{endif}}
<ul class='ipsForm ipsForm--vertical ipsForm--review {{if !isset( \IPS\Request::i()->_review ) and \IPS\Member::loggedIn()->member_id}}ipsJS_hide{{endif}}' data-role='reviewForm'>
{{foreach $elements as $collection}}
{{foreach $collection as $input}}
{$input|raw}
{{endforeach}}
<template template_group="forms" template_name="reviewTemplate" template_data="$id, $action, $elements, $hiddenValues, $actionButtons, $uploadField, $class=''" template_location="front" template_app="core"><![CDATA[<div class="ipsComposeAreaWrapper">
<div class='ipsComposeArea ipsComposeArea--review' {{if \IPS\Member::loggedIn()->member_id}}data-controller='core.front.core.reviewForm'{{endif}}>
<div class='ipsComposeArea__photo'>{template="userPhoto" group="global" app="core" params="\IPS\Member::loggedIn(), 'fluid'"}</div>
<div class='ipsComposeArea_editor'>
<form accept-charset='utf-8' class="ipsFormWrap ipsFormWrap--review" action="{$action->setQueryString( '_review', 1 )}" method="post" {{if $uploadField}}enctype="multipart/form-data"{{endif}}>
<input type="hidden" name="{$id}_submitted" value="1">
{{foreach $hiddenValues as $k => $v}}
<input type="hidden" name="{$k}" value="{$v}">
{{endforeach}}
<li class='ipsFieldRow'>
<div class='ipsFieldRow__content'>
<button type='submit' class='ipsButton ipsButton--primary'>{lang="add_review"}</button>
{{if $uploadField}}
<input type="hidden" name="MAX_FILE_SIZE" value="{$uploadField}">
<input type="hidden" name="plupload" value="{expression="md5( mt_rand() )"}">
{{endif}}
{{if !isset( \IPS\Request::i()->_review ) and \IPS\Member::loggedIn()->member_id}}
<div data-role='reviewIntro'>
<h3 class="i-margin-bottom_2"><strong class="i-color_hard i-font-weight_600">{lang="review_intro_1" sprintf="\IPS\Member::loggedIn()->name"}</strong> <span class='i-color_soft i-font-weight_500'>{lang="review_intro_2"}</span></h3>
<button type="button" class='ipsButton ipsButton--primary ipsButton--small' data-action='writeReview'><i class="fa-regular fa-pen-to-square"></i><span>{lang="write_a_review"}</span></button>
</div>
</li>
</ul>
</form>
{{endif}}
<ul class='ipsForm ipsForm--vertical ipsForm--review' data-role='reviewForm' {{if !isset( \IPS\Request::i()->_review ) and \IPS\Member::loggedIn()->member_id}}hidden{{endif}}>
{{foreach $elements as $collection}}
{{foreach $collection as $input}}
{$input|raw}
{{endforeach}}
{{endforeach}}
<li class='ipsSubmitRow'>
<button type='submit' class='ipsButton ipsButton--primary'>{lang="add_review"}</button>
</li>
</ul>
</form>
</div>
</div>
</div>]]></template>
<template template_group="forms" template_name="reviewUnavailable" template_data="$lang, $warnings=array(), $ends=NULL" template_location="front" template_app="core"><![CDATA[
@@ -6970,8 +6969,7 @@
{$desc|raw}
{$warning|raw}
{{if $error}}
<br>
<span class="i-color_warning">{lang="$error"}</span>
<div class="ipsFieldRow__warning">{lang="$error"}</div>
{{endif}}
</div>
{{else}}
@@ -6987,8 +6985,7 @@
{$desc|raw}
{$warning|raw}
{{if $error}}
<br>
<span class="i-color_warning">{lang="$error"}</span>
<div class="ipsFieldRow__warning">{lang="$error"}</div>
{{endif}}
</div>
{{endif}}
@@ -7786,7 +7783,7 @@
<li class='ipsData__item'>
<div class='ipsData__main'>
<div class='i-flex i-align-items_center i-justify-content_space-between'>
<a href='{$item->url()->setQueryString( array( 'do' => 'findComment', 'comment' => $day['commentId'] ) )}' class='i-font-weight_600'>{datetime="$day['date']"}</a>
<a href='{$item->shareableUrl( $day['commentId'] )}' class='i-font-weight_600'>{datetime="$day['date']"}</a>
<span class='i-color_soft'>{lang="num_comments" pluralize="$day['count']"}</span>
</div>
</div>
@@ -9380,40 +9377,42 @@ data-view-tracking-data="{expression="base64_encode(json_encode( $comment->getVi
{{endif}}]]></template>
<template template_group="global" template_name="featuredComment" template_data="$comment, $id, $commentLang='__defart_comment'" template_location="front" template_app="core"><![CDATA[{{if isset( $comment['comment'] )}}
{{$idField = $comment['comment']::$databaseColumnId;}}
<div class='i-padding_3 ipsEntry ipsEntry--recommended' data-commentID='{$id}'>
<div class='ipsColumns i-gap_3'>
<div class='ipsColumns__primary'>
<div class="ipsPhotoPanel i-margin-bottom_2">
<div class='ipsEntry ipsEntry--simple ipsEntry--featuredComment' data-commentID='{$id}'>
<header class="ipsEntry__header">
<div class="ipsEntry__header-align">
<div class="ipsPhotoPanel">
{template="userPhoto" app="core" group="global" params="$comment['comment']->author(), 'fluid', $comment['comment']->warningRef()"}
<div class="ipsPhotoPanel__text">
<div class="ipsPhotoPanel__primary">{template="userLink" app="core" group="global" params="$comment['comment']->author(), $comment['comment']->warningRef()"}</div>
<div class="ipsPhotoPanel__secondary"><a href="{$comment['comment']->url()}" title='{lang="go_to_this_comment" sprintf="\IPS\Member::loggedIn()->language()->get( $commentLang )"}' rel="nofollow" data-action='goToComment'>{$comment['comment']->dateLine()|raw}</a></div>
</div>
</div>
<div class='ipsRichText ipsTruncate_2'>{$comment['comment']->truncated( TRUE )|raw}</div>
{{if $comment['note']}}
<div class='ipsEntry__recommendedNote'>
<p class='ipsRichText'>{$comment['note']}</p>
{{if isset( $comment['featured_by'] )}}
<p class='i-color_soft i-margin-top_2 i-link-color_inherit'>{lang="recommended_by" htmlsprintf="$comment['featured_by']->link()"}</p>
{{endif}}
</div>
{{elseif isset( $comment['featured_by'] )}}
{lang="recommended_by" htmlsprintf="$comment['featured_by']->link()"}
{{endif}}
</div>
<div class='i-basis_auto i-align-self_center'>
{{if \IPS\IPS::classUsesTrait( $comment['comment'], 'IPS\Content\Reactable' ) and settings.reputation_enabled}}
</header>
<div class='ipsEntry__post'>
<div class='ipsRichText ipsTruncate_2'>{$comment['comment']->truncated( TRUE )|raw}</div>
{{if \IPS\IPS::classUsesTrait( $comment['comment'], 'IPS\Content\Reactable' ) and settings.reputation_enabled}}
<div class='i-margin-top_2 i-flex'>
{template="reactionOverview" group="global" app="core" params="$comment['comment']"}
{{endif}}
</div>
</div>
{{endif}}
{{if $comment['note']}}
<div class='ipsEntry__recommendedNote'>
<p>{$comment['note']}</p>
{{if isset( $comment['featured_by'] )}}
<p class='i-font-style_italic i-color_soft i-margin-top_1 i-link-color_inherit'>{lang="recommended_by" htmlsprintf="$comment['featured_by']->link()"}</p>
{{endif}}
</div>
{{elseif isset( $comment['featured_by'] )}}
{lang="recommended_by" htmlsprintf="$comment['featured_by']->link()"}
{{endif}}
</div>
</div>
{{endif}}]]></template>
<template template_group="global" template_name="featuredComments" template_data="$comments, $url, $titleLang='recommended_replies', $commentLang='__defart_comment'" template_location="front" template_app="core"><![CDATA[
<section data-controller='core.front.core.recommendedComments' data-url='{$url}' class='ipsBox ipsRecommendedComments {{if !\count( $comments )}}ipsHide{{endif}}'>
<template template_group="global" template_name="featuredComments" template_data="$comments, $url, $titleLang='recommended_replies', $commentLang='__defart_comment', $ipsBox=true" template_location="front" template_app="core"><![CDATA[
<section data-controller='core.front.core.recommendedComments' data-url='{$url}' class='{{if $ipsBox}}ipsBox ipsBox--featuredComments{{endif}} ipsRecommendedComments {{if !\count( $comments )}}ipsHide{{endif}}'>
<div data-role="recommendedComments">
<header class='ipsBox__header'>
<header class='{{if $ipsBox}}ipsBox__header{{else}}ipsTitle ipsTitle--h5 i-padding_2 i-flex i-align-items_center i-justify-content_space-between{{endif}}'>
<h2>{lang="$titleLang"}</h2>
{template="carouselNavigation" group="global" app="core" params="'topic-featured-posts'"}
</header>
@@ -9879,6 +9878,7 @@ data-view-tracking-data="{expression="base64_encode(json_encode( $comment->getVi
{template="favico" app="core" group="global" location="front" params=""}
</head>
<body data-ips-hook="body" class='ipsApp ipsApp_front {{foreach output.bodyClasses as $class}} {$class}{{endforeach}}' {{if output.globalControllers}}data-controller='{expression="implode( ',', output.globalControllers )"}'{{endif}} {{if isset( output.inlineMessage )}}data-message="{expression="output.inlineMessage"}"{{endif}} data-pageApp='{$location['app']}' data-pageLocation='front' data-pageModule='{$location['module']}' data-pageController='{$location['controller']}' {{if isset( \IPS\Request::i()->id )}}data-pageID='{expression="(int) \IPS\Request::i()->id"}'{{endif}} {{if isset( \IPS\Dispatcher::i()->dispatcherController ) AND !\IPS\Dispatcher::i()->dispatcherController->isContentPage }}data-nocontent{{endif}} {{if output.pageName}}data-pageName="{expression="output.pageName"}"{{endif}}>
<a href='#ipsLayout__main' class='ipsSkipToContent'>{lang="jump_to_content"}</a>
{theme="headerHtml"}
{{if settings.googletag_enabled AND !(settings.core_datalayer_use_gtm AND settings.core_datalayer_enabled)}}
{setting="googletag_noscript_code"}
@@ -9894,7 +9894,6 @@ data-view-tracking-data="{expression="base64_encode(json_encode( $comment->getVi
{{endif}}
<div class='ipsLayout__app'>
{template="announcementTop" app="core" group="global" params=""}
<a href='#ipsLayout_main' class='ipsSkipToContent'>{lang="jump_to_content"}</a>
<div data-ips-hook="mobileHeader" class='ipsMobileHeader ipsResponsive_header--mobile'>
{template="logo" app="core" group="global" params="'mobile'"}
{template="mobileNavHeader" app="core" group="global" params=""}
@@ -10067,42 +10066,32 @@ data-view-tracking-data="{expression="base64_encode(json_encode( $comment->getVi
<div>
<input type="hidden" name="csrfKey" value="{expression="\IPS\Session::i()->csrfKey"}">
{{if \IPS\Login::registrationType() != 'disabled'}}
<div class='i-text-align_center i-padding_3 cGuestTeaser'>
<div class='i-text-align_center cGuestTeaser'>
{{if $isReview}}
<h2 class='ipsTitle ipsTitle--h3'>{lang="teaser_review_title_reg"}</h2>
<p class='i-color_soft i-margin-top_2'>{lang="teaser_review_desc_reg"}</p>
<h2 class='ipsTitle ipsTitle--h4'>{lang="teaser_review_title_reg"}</h2>
{{else}}
<h2 class='ipsTitle ipsTitle--h3'>{lang="teaser_title_reg"}</h2>
<p class='i-color_soft i-margin-top_2'>{lang="teaser_desc_reg"}</p>
<h2 class='ipsTitle ipsTitle--h4'>{lang="teaser_title_reg"}</h2>
{{endif}}
<div class='ipsBox i-padding_3 i-margin-top_3'>
<div class='ipsFluid i-basis_400'>
<div class='cGuestTeaser_left'>
<h2 class='ipsTitle ipsTitle--h3'>{lang="teaser_account"}</h2>
<p class='i-color_soft i-margin-bottom_3'>{lang="teaser_account_desc"}</p>
{{if \IPS\Login::registrationType() == 'redirect'}}
<a href='{expression="\IPS\Settings::i()->allow_reg_target"}' class='ipsButton ipsButton--primary ipsButton--small' target="_blank" rel="noopener">
{{else}}
<a href='{url="app=core&module=system&controller=register" seoTemplate="register"}' class='ipsButton ipsButton--primary ipsButton--small' {{if \IPS\Login::registrationType() == 'normal'}}data-ipsDialog data-ipsDialog-size='narrow' data-ipsDialog-title='{lang="sign_up"}'{{endif}}>
{{endif}}
{lang="teaser_account_button"}</a>
</div>
<div class='cGuestTeaser_right'>
<h2 class='ipsTitle ipsTitle--h3'>{lang="teaser_signin"}</h2>
<p class='i-color_soft i-margin-bottom_3'>{lang="teaser_signin_desc"}</p>
<a href='{url="app=core&module=system&controller=login" seoTemplate="login" ref="(string) $item->url() . '#replyForm'"}' data-ipsDialog data-ipsDialog-size='medium' data-ipsDialog-remoteVerify="false" data-ipsDialog-title="{lang="teaser_signin_button"}" class='ipsButton ipsButton--primary ipsButton--small'>{lang="teaser_signin_button"}</a>
</div>
<div class='ipsFluid i-basis_260 i-margin-top_3'>
<div>
{{if \IPS\Login::registrationType() == 'redirect'}}
<a href='{expression="\IPS\Settings::i()->allow_reg_target"}' class='ipsButton ipsButton--primary ipsButton--wide' target="_blank" rel="noopener">
{{else}}
<a href='{url="app=core&module=system&controller=register" seoTemplate="register"}' class='ipsButton ipsButton--primary ipsButton--wide' {{if \IPS\Login::registrationType() == 'normal'}}data-ipsDialog data-ipsDialog-size='narrow' data-ipsDialog-title='{lang="sign_up"}'{{endif}}>
{{endif}}
{lang="teaser_account_button"}</a>
</div>
<div>
<a href='{url="app=core&module=system&controller=login" seoTemplate="login" ref="(string) $item->url() . '#replyForm'"}' data-ipsDialog data-ipsDialog-size='medium' data-ipsDialog-remoteVerify="false" data-ipsDialog-title="{lang="teaser_signin_button"}" class='ipsButton ipsButton--secondary ipsButton--wide'>{lang="teaser_signin_button"}</a>
</div>
</div>
</div>
{{else}}
<div class='i-text-align_center i-padding_3'>
<h2 class='ipsTitle ipsTitle--h3'>{lang="teaser_title_noreg"}</h2>
<p class='i-color_soft i-margin-top_2'>{lang="teaser_desc_noreg"}</p>
<br>
<br>
<a href='{url="app=core&module=system&controller=login" seoTemplate="login" ref="(string) $item->url() . '#replyForm'"}' data-ipsDialog data-ipsDialog-size='medium' data-ipsDialog-remoteVerify="false" data-ipsDialog-title="{lang="teaser_signin_button"}" class='ipsButton ipsButton--secondary'>{lang="teaser_signin_button"}</a>
<div class='i-text-align_center'>
<h2 class='ipsTitle ipsTitle--h4'>{lang="teaser_title_noreg"}</h2>
<p class='i-color_soft i-margin-top_1'>{lang="teaser_desc_noreg"}</p>
<a href='{url="app=core&module=system&controller=login" seoTemplate="login" ref="(string) $item->url() . '#replyForm'"}' data-ipsDialog data-ipsDialog-size='medium' data-ipsDialog-remoteVerify="false" data-ipsDialog-title="{lang="teaser_signin_button"}" class='ipsButton ipsButton--primary i-margin-top_3'>{lang="teaser_signin_button"}</a>
</div>
{{endif}}
</div>]]></template>
@@ -13577,7 +13566,9 @@ data-view-tracking-data="{expression="base64_encode(json_encode( $review->getVie
{{endif}}
{{endforeach}}
{{endif}}
{{if \count( $tags ) > 4}}
{{if \count( $tags ) == 5}}
{template="tag" group="global" app="core" params="$tags[4], $tagEditUrl"}
{{elseif \count( $tags ) > 4}}
<li class='ipsTags__more ipsJS_show'>
<a href="#" class='ipsTags__tag' data-ipsMenu id='elTags_{$id}'>{lang="and_x_more" pluralize="\count( $tags ) - 4"} <i class="fa-solid fa-angle-down"></i></a>
<div class='ipsHide ipsMenu ipsMenu_normal i-padding_2 cTagPopup' id='elTags_{$id}_menu'>
@@ -31005,11 +30996,6 @@ data-view-tracking-data="{expression="base64_encode(json_encode( $review->getVie
}
/* Guest Sign In */
.cGuestTeaser .ipsButton.ipsButton--primary {
width: 100%;
max-width: 350px;
}
.cGuestTeaser_social {
width: 250px;
margin-bottom: 5px;
@@ -31170,14 +31156,6 @@ data-view-tracking-data="{expression="base64_encode(json_encode( $review->getVie
margin: 0 auto;
}
html[dir] .cGuestTeaser_left {
border-left: 0;
border-right: 0;
border-bottom: 2px solid var(--i-background_2);
margin-bottom: 15px;
padding-bottom: 15px;
}
/* Reset guest teaser on mobile back to normal layout from tablet flex layout */
.cGuestTeaser .ipsGrid {
display: block !important;
@@ -31321,7 +31299,6 @@ data-view-tracking-data="{expression="base64_encode(json_encode( $review->getVie
box-shadow: none;
background: none;
border-radius: 0;
outline: max(var(--i-widget--bo-wi), 1px) solid var(--i-widget--bo-co);
}
.cWidgetContainer--carousel::-webkit-scrollbar {
@@ -37870,13 +37847,12 @@ a:has(.ipsBadge){
min-height: max(34px,2em);
min-width: max(34px,2.5em);
border-radius: min(var(--i-design-radius), 6px);
color: var(--i-co);
touch-action: manipulation;
}
@media (any-hover:hover){
.ipsCarouselNav__button:hover{
background: color-mix(in srgb, var(--i-co) 4%, transparent);
background: color-mix(in srgb, currentColor 4%, transparent);
}
}
@@ -37991,7 +37967,7 @@ a:has(.ipsBadge){
.ipsComposeArea{
display: flex;
gap: 1.3em;
gap: 1.2em;
}
.ipsComposeArea__photo{
@@ -40666,7 +40642,7 @@ i-data{
.ipsData--mini-grid .ipsData__item{
border-width: 0;
outline: var(--i-data--border) solid var(--i-background_3);
outline: var(--i-data--border) solid var(--i-data--bo-co);
}
.ipsData--mini-grid .ipsData__title{
@@ -42845,7 +42821,7 @@ a.ipsReact_reaction::after {
}
.ipsEntry__header .ipsPhotoPanel{
flex: 999 1 1%; /* 1% is needed to prevent unintended wrapping on small screens */
flex: 999 1 10%; /* 10% is needed to prevent unintended wrapping on small screens */
}
.ipsEntry__header .ipsPhotoPanel__secondary{
@@ -43389,6 +43365,13 @@ hr.ipsUnreadBar{
height: 6px;
}
/* Recommended note */
.ipsEntry__recommendedNote{
background: var(--i-background_2);
border-radius: 6px;
margin-top: 1em;
padding: 1em;
}
/* Truncate posts if using the compact style and are viewing pages beyond 1 */
.ipsEntry__truncate:not([data-truncate-expanded]){
@@ -43616,7 +43599,22 @@ hr.ipsUnreadBar{
}
}
/* Adjust the padding of the review form, since the parent wrapper already has padding */
.ipsForm--review > .ipsFieldRow:first-child{
padding-top: 0;
}
.ipsForm--review .ipsFieldRow{
border-width: 0;
padding-left: 0;
padding-right: 0;
}
.ipsForm--review .ipsSubmitRow{
padding-bottom: 0;
border-width: 0;
background: transparent;
}
@@ -50189,6 +50187,8 @@ li.L9 {
.ipsRating {
display: inline-flex;
flex-wrap: wrap;
gap: 0 1.5em;
color: var(--i-color_soft);
}
@@ -51549,8 +51549,8 @@ details.ipsQuote > .ipsQuote_contents{
}
/* Hide tabs if < 2 tabs exists */
.ipsTabs:not(:has([role="tab"]:nth-child(2))){
/* display: none; */
.ipsTabs:has([role="tablist"] > :only-child){
display: none;
}
.ipsTabs--sticky{
@@ -52079,10 +52079,6 @@ details.ipsQuote > .ipsQuote_contents{
mask-image: linear-gradient(to top, hsl(0 0% 0% / 0) 1.4em, hsl(0 0% 0% / 1) 50%);
}
:where(.tiptap .ipsQuote_contents, [data-ipstruncate])[data-truncated=&quot;true&quot;]:not([data-truncate-expanded]) {
overflow: auto;
}
/* This selector needs html due to :is(.ipsRichText, .ipsRichText) * */
html .ipsTruncate_more{
-webkit-appearance: none;
@@ -52368,14 +52364,38 @@ html .ipsTruncate_more{
padding: 1.5em 0;
--i-footer-widgets: 320px;
--i-color_root: var(--i-footer--co);
--i-color_hard: var(--i-footer--co);
--i-color_soft: color-mix(in srgb, var(--i-footer--co) 70%, var(--i-footer--ba-co));
--i-data--bo-co: color-mix(in srgb, var(--i-footer--co) 20%, var(--i-footer--ba-co));
}
.ipsFooter__footer a{
@supports (color: oklch(from var(--i) clamp(0, (.7 - l) * 1000, 1) c h)) and (color: oklch(from red l c h)){
.ipsFooter{
--i-color_hard: oklch(from var(--i-footer--ba-co) clamp(0, (.7 - l) * 1000, 1) c h);
}
}
.ipsFooter a{
color: inherit;
}
/* Adjust colors of elements so they match the footer background/color */
.ipsFooter .ipsList--border > li{
outline-color: var(--i-data--bo-co);
}
.ipsFooter .cSidebarBlock_managing .ipsButton--inherit,
.ipsFooter .ipsData--grid .ipsData__image,
.ipsFooter .ipsData__image > i{
background-color: var(--i-footer--ba-co);
}
.ipsFooter .ipsContainerTitle{
color: inherit;
}
.ipsFooter__widgets{
margin-bottom: 1.5em;
margin-bottom: 2em;
}
/* Hide footer widgets if they're empty */
@@ -52383,60 +52403,25 @@ html .ipsTruncate_more{
display: none;
}
.ipsFooter__widgets .cWidgetContainer > ul{
display: grid;
grid-auto-flow: column;
grid-auto-columns: minmax(min(var(--i-footer-widgets), 75vw), 1fr);
gap: 5em;
/* Remove all widget styles for the widget footer */
.ipsFooter__widgets .ipsWidget,
.ipsFooter__widgets .ipsWidget__header,
.ipsFooter__widgets .cWidgetContainer--carousel{
box-shadow: none;
background: color-mix(in srgb, var(--i-footer--co) 5%, var(--i-footer--ba-co));
color: inherit;
border-width: 0;
}
.ipsFooter__widgets .cWidgetContainer > ul > li{
padding: 2em 0;
scroll-snap-align: start;
}
/* Remove all widget styles for the widget footer */
.ipsFooter__widgets :is(.ipsWidget, .ipsWidget__header){
all: unset;
}
.ipsFooter__widgets .ipsWidget *{
color: inherit;
}
.ipsFooter__widgets .ipsWidget__header {
display: block;
font-weight: bold;
padding: 1em;
}
.ipsFooter__widgets .ipsData__item{
border-color: color-mix(in srgb, var(--i-co) 10%, transparent);
}
.ipsFooter__widgets :is(.ipsData__meta, .ipsPhotoPanel__secondary, .ipsData__stats){
--i-co: inherit;
color: color-mix(in srgb, var(--i-co) 50%, transparent);
}
.ipsFooter .cSidebarManager_placeholder{
height: auto;
}
/* Move into carousel on mobiles */
@media (max-width: 979px){
.ipsFooter__widgets .cWidgetContainer > ul{
gap: 2em;
margin-left: calc(var(--i-layout-gutter) * -1);
margin-right: calc(var(--i-layout-gutter) * -1);
overflow-x: scroll;
overscroll-behavior-x: contain;
scroll-behavior: smooth;
scroll-snap-type: x mandatory;
padding-inline: 2em;
scroll-padding-inline: 2em;
.ipsFooter__widgets .ipsWidget__header,
.ipsFooter__widgets .cWidgetContainer__carousel-buttons {
background: color-mix(in srgb, var(--i-footer--co) 10%, var(--i-footer--ba-co));
border-width: 0;
}
.ipsFooter .cSidebarManager_placeholder{
height: auto;
}
}
.ipsFooter__footer{
font-size: .9em;
@@ -53310,6 +53295,7 @@ i-navigation-menu{
.ipsLayout__main{
flex: 1 1 auto;
padding-top: var(--i-sp_block);
outline-width: 0;
}
@media (max-width: 979px){
@@ -53405,7 +53391,7 @@ i-navigation-menu{
display: block !important;
}
#elContextualTools{
#elContextualTools, [data-role="sidebarAd"]{
margin-bottom: var(--i-sp_block);
}
#elContextualTools,
@@ -55154,6 +55140,10 @@ a.i-link-color_inherit,
----------------
*/
.i-font-style_italic{
font-style: italic;
}
.i-text-transform_uppercase{
text-transform: uppercase;
}