@use "sass:map";
@use "./paragraph-indent.config" as config;

// -----------------------------------------------------------------------------
// Core Engine
// -----------------------------------------------------------------------------

@mixin ss-paragraph-indent($type: default, $override: ()) {
    $base: map.get(config.$ss-paragraph-indent-config, $type);

    @if $base == null {
        @error "Indent type `#{$type}` does not exist.";
    }

    $settings: map.merge($base, $override);

    $indent: map.get($settings, indent);
    $skip-first: map.get($settings, skip-first);
    $skip-after-heading: map.get($settings, skip-after-heading);

    p {
        text-indent: $indent;
    }

    @if $skip-first == true {
        p:first-of-type {
            text-indent: 0;
        }
    }

    @if $skip-after-heading == true {
        h1 + p,
        h2 + p,
        h3 + p,
        h4 + p,
        h5 + p,
        h6 + p {
            text-indent: 0;
        }
    }
}
