// =============================================================================
// 31-modules / ribbon / config
// =============================================================================
//
// Ribbon = top-level chrome rail (top, bottom, left, right) anchored to the
// frame edges. Geometry mirrors the legacy
// `bup/scss/variables/body_organisms/_ribbon.scss` defaults — every length
// is expressed via `q()` from unit.gl so the ribbon scales with the global
// rhythm instead of using hard-coded `rem` / `px`.
//
// =============================================================================

@use "sass:map";
@use "../../01-core/external" as *;

// ----------------------------------------------------------------------------
// Dimensions (q-units)
// ----------------------------------------------------------------------------
$ribbon-padding: q(10) !default;
$ribbon-spacing: q(8) !default;
$ribbon-width: q(40) !default;
$ribbon-height: $ribbon-width !default;

$ribbon-height-top: $ribbon-height !default;
$ribbon-height-bottom: $ribbon-height !default;
$ribbon-width-left: $ribbon-width !default;
$ribbon-width-right: $ribbon-width !default;

$ribbon-border-width: q(1) !default;

/// Inner slot width = ribbon width minus horizontal padding on both sides.
$ribbon-slot-width: calc(#{$ribbon-width} - (#{$ribbon-padding} * 2)) !default;

$ribbon-slot-gap: q(2) !default;
$ribbon-slot-track: baseline(4) !default;

// ----------------------------------------------------------------------------
// Colors (legacy var names with new --ss-* fallbacks)
// ----------------------------------------------------------------------------
$ribbon-background: var(
    --color_text_primary,
    var(--ss-color-text, #1a1a1a)
) !default;
$ribbon-color: var(
    --color_fill_primary,
    var(--ss-color-fill, #ffffff)
) !default;
$ribbon-border-color: var(
    --color_fill_primary,
    var(--ss-color-fill, #ffffff)
) !default;

$ribbon-background-inverted: var(
    --color_fill_primary,
    var(--ss-color-fill, #ffffff)
) !default;
$ribbon-color-inverted: var(
    --color_text_primary,
    var(--ss-color-text, #1a1a1a)
) !default;
$ribbon-border-color-inverted: var(
    --color_text_primary,
    var(--ss-color-text, #1a1a1a)
) !default;

// ----------------------------------------------------------------------------
// Type / layering
// ----------------------------------------------------------------------------
$ribbon-font-size: basepoint(3) !default;
$ribbon-line-height: baseline(3) !default;
$ribbon-z-index: 100 !default;

// ----------------------------------------------------------------------------
// Grid area names (mirrors legacy mixin set)
// ----------------------------------------------------------------------------
$ribbon-areas: (
    "horizontal_left": ribbon_area--horizontal_left,
    "horizontal_center": ribbon_area--horizontal_center,
    "horizontal_right": ribbon_area--horizontal_right,
    "vertical_top": ribbon_area--vertical_top,
    "vertical_center": ribbon_area--vertical_center,
    "vertical_bottom": ribbon_area--vertical_bottom,
) !default;

// ----------------------------------------------------------------------------
// Aggregate map (kept for parity with other modules' config-map convention).
// ----------------------------------------------------------------------------
$ribbon-config: (
    "padding": $ribbon-padding,
    "spacing": $ribbon-spacing,
    "width": $ribbon-width,
    "height": $ribbon-height,
    "height-top": $ribbon-height-top,
    "height-bottom": $ribbon-height-bottom,
    "width-left": $ribbon-width-left,
    "width-right": $ribbon-width-right,
    "slot-width": $ribbon-slot-width,
    "slot-gap": $ribbon-slot-gap,
    "slot-track": $ribbon-slot-track,
    "border-width": $ribbon-border-width,
    "background": $ribbon-background,
    "color": $ribbon-color,
    "border-color": $ribbon-border-color,
    "background-inverted": $ribbon-background-inverted,
    "color-inverted": $ribbon-color-inverted,
    "border-color-inverted": $ribbon-border-color-inverted,
    "font-size": $ribbon-font-size,
    "line-height": $ribbon-line-height,
    "z-index": $ribbon-z-index,
) !default;
