listen ) ) { ob_start(); if ( ! empty( $is_editing ) && ! betterdocs()->listen->has_listen( get_the_ID(), $listen_args ) ) { // A template edited against a preview that is not a readable doc resolves to // nothing — and a widget that renders nothing cannot be seen, selected or // moved. It reads as broken rather than as empty, so the canvas gets static // chrome instead. Same reasoning as the AI Actions placeholder below. $listen_label = ! empty( $attributes['listen_button_label'] ) ? $attributes['listen_button_label'] : betterdocs()->settings->get( 'listen_button_label' ); ?>
ai_actions ) ) { ob_start(); if ( ! empty( $is_editing ) && ! betterdocs()->ai_actions->has_actions( get_the_ID(), $ai_actions_args ) ) { // The action list is resolved per doc, so a template edited against a // preview that is not a readable doc resolves to nothing — and a widget // that renders nothing cannot be seen, selected or moved. It reads as // broken rather than as empty, so the canvas gets static chrome instead. $svg_kses = AIActions::svg_kses(); $button_label = ! empty( $attributes['ai_actions_button_label'] ) ? $attributes['ai_actions_button_label'] : betterdocs()->settings->get( 'ai_actions_button_label' ); ?>
*` rule // zeroes child block margins, and the 8px gap between the pills is the leading // box's own, so two boxes would space them by the row's wider 16px. $leading = trim( $reading_time ) . $listen; ?>