@forward 'generic_scss/genericStyle';
@use 'generic_scss/genericStyle';

@forward 'tabs/tabsStyling.scss';
@use 'tabs/tabsStyling.scss';

@forward 'attribute_holders/attributeConstructs';
@use 'attribute_holders/attributeConstructs';

@forward 'labels/labels';
@use 'labels/labels';

@forward 'adaptive/adaptive';
@use 'adaptive/adaptive';

@forward 'fieldsets/fieldsetStyling';
@use 'fieldsets/fieldsetStyling';

@use 'rolltemplate/_rolltemplate';
@forward 'rolltemplate/_rolltemplate';

@use 'modal/modalStyling';
@forward 'modal/modalStyling';

/// Mixin that includes all of the framework's styles. Should be included in a 3 class declaration for character sheets.
/// @example
///   @use 'k-scaffold' as k;
///   
///   .ui-dialog .tab-content .charsheet{
///     @include k.defaultStyles;
///   }
@mixin defaultStyles {
  // Clear roll20 styles
  @include genericStyle.clear;

  // Basic Layout constructs
  @include genericStyle.layout;
  @include genericStyle.borderStyles;
  @include genericStyle.sizesAndRatios;

  // Text stylings
  @include genericStyle.textElements;
  @include genericStyle.materialIcons;
  @include genericStyle.materialSymbols;
  @include genericStyle.textStyles;
  @include genericStyle.headerElements;
  @include genericStyle.r20FontClasses;

  // Input and button
  @include attributeConstructs.inputBase;
  @include attributeConstructs.button;
  @include attributeConstructs.collapsible;
  @include attributeConstructs.fillLeft;
  @include labels.input-label;
  @include labels.headed-textarea;
  @include adaptive.adaptiveText;

  @include fieldsetStyling.fieldsetStyling;
  @include modalStyling.modalStyling;
  @include tabsStyling.tabsStyling;
}

/// Mixin that includes all of the default styles as well as rolltemplate specific styling such as inline roll variable assignment. Should be included directly in the rolltemplate declaration for your roll templates.
/// @example
///   @use 'k-scaffold/k';
///   
///   .sheet-rolltemplate-TEMPLATENAME{
///     @include k.defaultRollStyling;
///   }
@mixin defaultRollStyling {
  @include defaultStyles;
  @include rolltemplate.rollStyles;
}

@mixin rollVariables {
  @include rolltemplate.rollVariables;
}