@use "../util/scss/besm.scss" as *;
@use "../util/scss/add-rules.scss" as *;
@use "../util/scss/clockwise.scss" as *;
@use "../util/scss/include.scss" as *;
@use "./variables.scss" as *;
@use "./maps.scss" as *;
@use "sass:map";

@mixin cxb-heading($name: "heading", $besm: $cx-besm) {
   $block: map.get($besm, block);
   $element: map.get($besm, element);
   $state: map.get($besm, state);
   $mod: map.get($besm, mod);

   .#{$block}#{$name} {
      @include cx-add-rules($cx-caption-style-map);

      &.#{$state}level-1 {
         @include cx-add-state-rules($cx-caption-level-style-map, 1);
      }

      &.#{$state}level-2 {
         @include cx-add-state-rules($cx-caption-level-style-map, 2);
      }

      &.#{$state}level-3 {
         @include cx-add-state-rules($cx-caption-level-style-map, 3);
      }

      &.#{$state}level-4 {
         @include cx-add-state-rules($cx-caption-level-style-map, 4);
      }

      &.#{$state}level-5 {
         @include cx-add-state-rules($cx-caption-level-style-map, 5);
      }

      &.#{$state}level-6 {
         @include cx-add-state-rules($cx-caption-level-style-map, 6);
      }
   }
}

@if (cx-should-include("cx/widgets/Heading")) {
   @include cxb-heading();
}
