in place.
*/
function wpbc_print_loader_inline_css_once() {
static $printed = false;
if ( $printed ) {
return;
}
$printed = true;
$css = "
/* Critical loader styles (scoped by class names) */
.calendar_loader_frame {
width: calc(341px * var(--wpbc-loader-cols, 1));
max-width: 100%;
height: 307px;
display: flex;
flex-flow: column nowrap;
align-items: center;
justify-content: center;
border-radius: 5px;
box-shadow: 0 0 2px #ccc;
gap: 15px;
/* Calendar variables (safe fallbacks) */
color: var(--wpbc_cal-available-text-color, #2c3e50);
background: rgb(from var(--wpbc_cal-available-day-color, #e6f2ff) r g b / var(--wpbc_cal-day-bg-color-opacity, 1));
border: var(--wpbc_cal-day-cell-border-width, 1px) solid var(--wpbc_cal-available-day-color, #aacbeb);
}
.calendar_loader_text {
font-size: 18px;
text-align: center;
}
.calendar_loader_frame__progress_line_container {
width: 50%;
height: 3px;
margin-top: 7px;
overflow: hidden;
background: #202020;
border-radius: 30px;
}
.calendar_loader_frame__progress_line {
width: 0%;
height: 3px;
background: #8ECE01;
border-radius: 30px;
animation: calendar_loader_bar_progress 3s infinite linear;
}
@keyframes calendar_loader_bar_progress { to { width: 100%; } }
@media (prefers-reduced-motion: reduce) {
.calendar_loader_frame__progress_line { animation: none; width: 50%; }
}
";
// Elementor-safe path: attach CSS to an enqueued WPBC stylesheet.
if ( class_exists( 'WPBC_FE_Assets' ) ) {
// Ensure the target style is enqueued (safe-check anyway).
if ( function_exists( 'wp_enqueue_style' ) ) {
wp_enqueue_style( 'wpbc-ui-both', wpbc_plugin_url( '/css/wpbc_ui_both.css' ), array(), WP_BK_VERSION_NUM ); // FixIn: 10.0.0.25.
}
// FixIn: 10.14.14.1.
$added = WPBC_FE_Assets::add_inline_css_to_wp_style( 'wpbc-ui-both', $css, 'wpbc:calendar-loader-css' );
if ( $added ) {
return; // Do NOT print ' . "\n"; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
}
/**
* Output a single calendar loader block (no inline