{"version":3,"sourceRoot":null,"mappings":"ACSI,oBCsBA,mMEAE,sTAAA,gUAAA,kRAAA,wTAAA,0mKAAA","sources":["dist/css/base/link.css","var/www/html/node_modules/@graupl/core/src/scss/mixins/_layer.scss","var/www/html/packages/icons/src/scss/base/link/_index.scss","var/www/html/packages/icons/src/scss/component/icon/_mixins.scss","var/www/html/node_modules/@graupl/core/src/scss/mixins/_state.scss"],"sourcesContent":["@layer graupl.theme {\n  a.icon, a.icon-before, a.icon-after {\n    --graupl-icon-color: var(--graupl-link-color, var(--graupl-theme-active--primary--700, var(--graupl-theme-light--primary--700, var(--graupl-primary--700, hsl(219, 80%, 35%)))));\n  }\n  a.icon:visited, a.icon-before:visited, a.icon-after:visited {\n    --graupl-icon-color: var(--graupl-link-visited-color, var(--graupl-link-color, var(--graupl-theme-active--primary--700, var(--graupl-theme-light--primary--700, var(--graupl-primary--700, hsl(219, 80%, 35%))))));\n  }\n  a.icon.visited, a.icon-before.visited, a.icon-after.visited {\n    --graupl-icon-color: var(--graupl-link-visited-color, var(--graupl-link-color, var(--graupl-theme-active--primary--700, var(--graupl-theme-light--primary--700, var(--graupl-primary--700, hsl(219, 80%, 35%))))));\n  }\n  a.icon:focus-visible, a.icon-before:focus-visible, a.icon-after:focus-visible {\n    --graupl-icon-color: var(--graupl-link-focus-color, var(--graupl-link-color, var(--graupl-theme-active--primary--700, var(--graupl-theme-light--primary--700, var(--graupl-primary--700, hsl(219, 80%, 35%))))));\n  }\n  a.icon.focus, a.icon-before.focus, a.icon-after.focus {\n    --graupl-icon-color: var(--graupl-link-focus-color, var(--graupl-link-color, var(--graupl-theme-active--primary--700, var(--graupl-theme-light--primary--700, var(--graupl-primary--700, hsl(219, 80%, 35%))))));\n  }\n  a.icon:hover, a.icon-before:hover, a.icon-after:hover {\n    --graupl-icon-color: var(--graupl-link-hover-color, var(--graupl-theme-active--tertiary--700, var(--graupl-theme-light--tertiary--700, var(--graupl-tertiary--700, hsl(340, 65%, 35%)))));\n  }\n  a.icon.hover, a.icon-before.hover, a.icon-after.hover {\n    --graupl-icon-color: var(--graupl-link-hover-color, var(--graupl-theme-active--tertiary--700, var(--graupl-theme-light--tertiary--700, var(--graupl-tertiary--700, hsl(340, 65%, 35%)))));\n  }\n  a.icon:active, a.icon-before:active, a.icon-after:active {\n    --graupl-icon-color: var(--graupl-link-active-color, var(--graupl-link-hover-color, var(--graupl-theme-active--tertiary--700, var(--graupl-theme-light--tertiary--700, var(--graupl-tertiary--700, hsl(340, 65%, 35%))))));\n  }\n  a.icon.active, a.icon-before.active, a.icon-after.active {\n    --graupl-icon-color: var(--graupl-link-active-color, var(--graupl-link-hover-color, var(--graupl-theme-active--tertiary--700, var(--graupl-theme-light--tertiary--700, var(--graupl-tertiary--700, hsl(340, 65%, 35%))))));\n  }\n  a.icon:disabled, a.icon-before:disabled, a.icon-after:disabled {\n    --graupl-icon-color: var(--graupl-link-disabled-color, var(--graupl-theme-active--primary--200, var(--graupl-theme-light--primary--200, var(--graupl-primary--200, hsl(219, 90%, 80%)))));\n  }\n  a.icon:disabled:visited, a.icon-before:disabled:visited, a.icon-after:disabled:visited {\n    --graupl-icon-color: var(--graupl-link-disabled-color, var(--graupl-theme-active--primary--200, var(--graupl-theme-light--primary--200, var(--graupl-primary--200, hsl(219, 90%, 80%)))));\n  }\n  a.icon:disabled.visited, a.icon-before:disabled.visited, a.icon-after:disabled.visited {\n    --graupl-icon-color: var(--graupl-link-disabled-color, var(--graupl-theme-active--primary--200, var(--graupl-theme-light--primary--200, var(--graupl-primary--200, hsl(219, 90%, 80%)))));\n  }\n  a.icon:disabled:focus-visible, a.icon-before:disabled:focus-visible, a.icon-after:disabled:focus-visible {\n    --graupl-icon-color: var(--graupl-link-disabled-color, var(--graupl-theme-active--primary--200, var(--graupl-theme-light--primary--200, var(--graupl-primary--200, hsl(219, 90%, 80%)))));\n  }\n  a.icon:disabled.focus, a.icon-before:disabled.focus, a.icon-after:disabled.focus {\n    --graupl-icon-color: var(--graupl-link-disabled-color, var(--graupl-theme-active--primary--200, var(--graupl-theme-light--primary--200, var(--graupl-primary--200, hsl(219, 90%, 80%)))));\n  }\n  a.icon:disabled:hover, a.icon-before:disabled:hover, a.icon-after:disabled:hover {\n    --graupl-icon-color: var(--graupl-link-disabled-color, var(--graupl-theme-active--primary--200, var(--graupl-theme-light--primary--200, var(--graupl-primary--200, hsl(219, 90%, 80%)))));\n  }\n  a.icon:disabled.hover, a.icon-before:disabled.hover, a.icon-after:disabled.hover {\n    --graupl-icon-color: var(--graupl-link-disabled-color, var(--graupl-theme-active--primary--200, var(--graupl-theme-light--primary--200, var(--graupl-primary--200, hsl(219, 90%, 80%)))));\n  }\n  a.icon:disabled:active, a.icon-before:disabled:active, a.icon-after:disabled:active {\n    --graupl-icon-color: var(--graupl-link-disabled-color, var(--graupl-theme-active--primary--200, var(--graupl-theme-light--primary--200, var(--graupl-primary--200, hsl(219, 90%, 80%)))));\n  }\n  a.icon:disabled.active, a.icon-before:disabled.active, a.icon-after:disabled.active {\n    --graupl-icon-color: var(--graupl-link-disabled-color, var(--graupl-theme-active--primary--200, var(--graupl-theme-light--primary--200, var(--graupl-primary--200, hsl(219, 90%, 80%)))));\n  }\n  a.icon:disabled[aria-selected=true], a.icon-before:disabled[aria-selected=true], a.icon-after:disabled[aria-selected=true] {\n    --graupl-icon-color: var(--graupl-link-disabled-color, var(--graupl-theme-active--primary--200, var(--graupl-theme-light--primary--200, var(--graupl-primary--200, hsl(219, 90%, 80%)))));\n  }\n  a.icon:disabled.selected, a.icon-before:disabled.selected, a.icon-after:disabled.selected {\n    --graupl-icon-color: var(--graupl-link-disabled-color, var(--graupl-theme-active--primary--200, var(--graupl-theme-light--primary--200, var(--graupl-primary--200, hsl(219, 90%, 80%)))));\n  }\n  a.icon:disabled[aria-current=true], a.icon-before:disabled[aria-current=true], a.icon-after:disabled[aria-current=true] {\n    --graupl-icon-color: var(--graupl-link-disabled-color, var(--graupl-theme-active--primary--200, var(--graupl-theme-light--primary--200, var(--graupl-primary--200, hsl(219, 90%, 80%)))));\n  }\n  a.icon:disabled.current, a.icon-before:disabled.current, a.icon-after:disabled.current {\n    --graupl-icon-color: var(--graupl-link-disabled-color, var(--graupl-theme-active--primary--200, var(--graupl-theme-light--primary--200, var(--graupl-primary--200, hsl(219, 90%, 80%)))));\n  }\n  a.icon[disabled], a.icon-before[disabled], a.icon-after[disabled] {\n    --graupl-icon-color: var(--graupl-link-disabled-color, var(--graupl-theme-active--primary--200, var(--graupl-theme-light--primary--200, var(--graupl-primary--200, hsl(219, 90%, 80%)))));\n  }\n  a.icon[disabled]:visited, a.icon-before[disabled]:visited, a.icon-after[disabled]:visited {\n    --graupl-icon-color: var(--graupl-link-disabled-color, var(--graupl-theme-active--primary--200, var(--graupl-theme-light--primary--200, var(--graupl-primary--200, hsl(219, 90%, 80%)))));\n  }\n  a.icon[disabled].visited, a.icon-before[disabled].visited, a.icon-after[disabled].visited {\n    --graupl-icon-color: var(--graupl-link-disabled-color, var(--graupl-theme-active--primary--200, var(--graupl-theme-light--primary--200, var(--graupl-primary--200, hsl(219, 90%, 80%)))));\n  }\n  a.icon[disabled]:focus-visible, a.icon-before[disabled]:focus-visible, a.icon-after[disabled]:focus-visible {\n    --graupl-icon-color: var(--graupl-link-disabled-color, var(--graupl-theme-active--primary--200, var(--graupl-theme-light--primary--200, var(--graupl-primary--200, hsl(219, 90%, 80%)))));\n  }\n  a.icon[disabled].focus, a.icon-before[disabled].focus, a.icon-after[disabled].focus {\n    --graupl-icon-color: var(--graupl-link-disabled-color, var(--graupl-theme-active--primary--200, var(--graupl-theme-light--primary--200, var(--graupl-primary--200, hsl(219, 90%, 80%)))));\n  }\n  a.icon[disabled]:hover, a.icon-before[disabled]:hover, a.icon-after[disabled]:hover {\n    --graupl-icon-color: var(--graupl-link-disabled-color, var(--graupl-theme-active--primary--200, var(--graupl-theme-light--primary--200, var(--graupl-primary--200, hsl(219, 90%, 80%)))));\n  }\n  a.icon[disabled].hover, a.icon-before[disabled].hover, a.icon-after[disabled].hover {\n    --graupl-icon-color: var(--graupl-link-disabled-color, var(--graupl-theme-active--primary--200, var(--graupl-theme-light--primary--200, var(--graupl-primary--200, hsl(219, 90%, 80%)))));\n  }\n  a.icon[disabled]:active, a.icon-before[disabled]:active, a.icon-after[disabled]:active {\n    --graupl-icon-color: var(--graupl-link-disabled-color, var(--graupl-theme-active--primary--200, var(--graupl-theme-light--primary--200, var(--graupl-primary--200, hsl(219, 90%, 80%)))));\n  }\n  a.icon[disabled].active, a.icon-before[disabled].active, a.icon-after[disabled].active {\n    --graupl-icon-color: var(--graupl-link-disabled-color, var(--graupl-theme-active--primary--200, var(--graupl-theme-light--primary--200, var(--graupl-primary--200, hsl(219, 90%, 80%)))));\n  }\n  a.icon[disabled][aria-selected=true], a.icon-before[disabled][aria-selected=true], a.icon-after[disabled][aria-selected=true] {\n    --graupl-icon-color: var(--graupl-link-disabled-color, var(--graupl-theme-active--primary--200, var(--graupl-theme-light--primary--200, var(--graupl-primary--200, hsl(219, 90%, 80%)))));\n  }\n  a.icon[disabled].selected, a.icon-before[disabled].selected, a.icon-after[disabled].selected {\n    --graupl-icon-color: var(--graupl-link-disabled-color, var(--graupl-theme-active--primary--200, var(--graupl-theme-light--primary--200, var(--graupl-primary--200, hsl(219, 90%, 80%)))));\n  }\n  a.icon[disabled][aria-current=true], a.icon-before[disabled][aria-current=true], a.icon-after[disabled][aria-current=true] {\n    --graupl-icon-color: var(--graupl-link-disabled-color, var(--graupl-theme-active--primary--200, var(--graupl-theme-light--primary--200, var(--graupl-primary--200, hsl(219, 90%, 80%)))));\n  }\n  a.icon[disabled].current, a.icon-before[disabled].current, a.icon-after[disabled].current {\n    --graupl-icon-color: var(--graupl-link-disabled-color, var(--graupl-theme-active--primary--200, var(--graupl-theme-light--primary--200, var(--graupl-primary--200, hsl(219, 90%, 80%)))));\n  }\n  a.icon[aria-disabled=true], a.icon-before[aria-disabled=true], a.icon-after[aria-disabled=true] {\n    --graupl-icon-color: var(--graupl-link-disabled-color, var(--graupl-theme-active--primary--200, var(--graupl-theme-light--primary--200, var(--graupl-primary--200, hsl(219, 90%, 80%)))));\n  }\n  a.icon[aria-disabled=true]:visited, a.icon-before[aria-disabled=true]:visited, a.icon-after[aria-disabled=true]:visited {\n    --graupl-icon-color: var(--graupl-link-disabled-color, var(--graupl-theme-active--primary--200, var(--graupl-theme-light--primary--200, var(--graupl-primary--200, hsl(219, 90%, 80%)))));\n  }\n  a.icon[aria-disabled=true].visited, a.icon-before[aria-disabled=true].visited, a.icon-after[aria-disabled=true].visited {\n    --graupl-icon-color: var(--graupl-link-disabled-color, var(--graupl-theme-active--primary--200, var(--graupl-theme-light--primary--200, var(--graupl-primary--200, hsl(219, 90%, 80%)))));\n  }\n  a.icon[aria-disabled=true]:focus-visible, a.icon-before[aria-disabled=true]:focus-visible, a.icon-after[aria-disabled=true]:focus-visible {\n    --graupl-icon-color: var(--graupl-link-disabled-color, var(--graupl-theme-active--primary--200, var(--graupl-theme-light--primary--200, var(--graupl-primary--200, hsl(219, 90%, 80%)))));\n  }\n  a.icon[aria-disabled=true].focus, a.icon-before[aria-disabled=true].focus, a.icon-after[aria-disabled=true].focus {\n    --graupl-icon-color: var(--graupl-link-disabled-color, var(--graupl-theme-active--primary--200, var(--graupl-theme-light--primary--200, var(--graupl-primary--200, hsl(219, 90%, 80%)))));\n  }\n  a.icon[aria-disabled=true]:hover, a.icon-before[aria-disabled=true]:hover, a.icon-after[aria-disabled=true]:hover {\n    --graupl-icon-color: var(--graupl-link-disabled-color, var(--graupl-theme-active--primary--200, var(--graupl-theme-light--primary--200, var(--graupl-primary--200, hsl(219, 90%, 80%)))));\n  }\n  a.icon[aria-disabled=true].hover, a.icon-before[aria-disabled=true].hover, a.icon-after[aria-disabled=true].hover {\n    --graupl-icon-color: var(--graupl-link-disabled-color, var(--graupl-theme-active--primary--200, var(--graupl-theme-light--primary--200, var(--graupl-primary--200, hsl(219, 90%, 80%)))));\n  }\n  a.icon[aria-disabled=true]:active, a.icon-before[aria-disabled=true]:active, a.icon-after[aria-disabled=true]:active {\n    --graupl-icon-color: var(--graupl-link-disabled-color, var(--graupl-theme-active--primary--200, var(--graupl-theme-light--primary--200, var(--graupl-primary--200, hsl(219, 90%, 80%)))));\n  }\n  a.icon[aria-disabled=true].active, a.icon-before[aria-disabled=true].active, a.icon-after[aria-disabled=true].active {\n    --graupl-icon-color: var(--graupl-link-disabled-color, var(--graupl-theme-active--primary--200, var(--graupl-theme-light--primary--200, var(--graupl-primary--200, hsl(219, 90%, 80%)))));\n  }\n  a.icon[aria-disabled=true][aria-selected=true], a.icon-before[aria-disabled=true][aria-selected=true], a.icon-after[aria-disabled=true][aria-selected=true] {\n    --graupl-icon-color: var(--graupl-link-disabled-color, var(--graupl-theme-active--primary--200, var(--graupl-theme-light--primary--200, var(--graupl-primary--200, hsl(219, 90%, 80%)))));\n  }\n  a.icon[aria-disabled=true].selected, a.icon-before[aria-disabled=true].selected, a.icon-after[aria-disabled=true].selected {\n    --graupl-icon-color: var(--graupl-link-disabled-color, var(--graupl-theme-active--primary--200, var(--graupl-theme-light--primary--200, var(--graupl-primary--200, hsl(219, 90%, 80%)))));\n  }\n  a.icon[aria-disabled=true][aria-current=true], a.icon-before[aria-disabled=true][aria-current=true], a.icon-after[aria-disabled=true][aria-current=true] {\n    --graupl-icon-color: var(--graupl-link-disabled-color, var(--graupl-theme-active--primary--200, var(--graupl-theme-light--primary--200, var(--graupl-primary--200, hsl(219, 90%, 80%)))));\n  }\n  a.icon[aria-disabled=true].current, a.icon-before[aria-disabled=true].current, a.icon-after[aria-disabled=true].current {\n    --graupl-icon-color: var(--graupl-link-disabled-color, var(--graupl-theme-active--primary--200, var(--graupl-theme-light--primary--200, var(--graupl-primary--200, hsl(219, 90%, 80%)))));\n  }\n  a.icon.disabled, a.icon-before.disabled, a.icon-after.disabled {\n    --graupl-icon-color: var(--graupl-link-disabled-color, var(--graupl-theme-active--primary--200, var(--graupl-theme-light--primary--200, var(--graupl-primary--200, hsl(219, 90%, 80%)))));\n  }\n  a.icon.disabled:visited, a.icon-before.disabled:visited, a.icon-after.disabled:visited {\n    --graupl-icon-color: var(--graupl-link-disabled-color, var(--graupl-theme-active--primary--200, var(--graupl-theme-light--primary--200, var(--graupl-primary--200, hsl(219, 90%, 80%)))));\n  }\n  a.icon.disabled.visited, a.icon-before.disabled.visited, a.icon-after.disabled.visited {\n    --graupl-icon-color: var(--graupl-link-disabled-color, var(--graupl-theme-active--primary--200, var(--graupl-theme-light--primary--200, var(--graupl-primary--200, hsl(219, 90%, 80%)))));\n  }\n  a.icon.disabled:focus-visible, a.icon-before.disabled:focus-visible, a.icon-after.disabled:focus-visible {\n    --graupl-icon-color: var(--graupl-link-disabled-color, var(--graupl-theme-active--primary--200, var(--graupl-theme-light--primary--200, var(--graupl-primary--200, hsl(219, 90%, 80%)))));\n  }\n  a.icon.disabled.focus, a.icon-before.disabled.focus, a.icon-after.disabled.focus {\n    --graupl-icon-color: var(--graupl-link-disabled-color, var(--graupl-theme-active--primary--200, var(--graupl-theme-light--primary--200, var(--graupl-primary--200, hsl(219, 90%, 80%)))));\n  }\n  a.icon.disabled:hover, a.icon-before.disabled:hover, a.icon-after.disabled:hover {\n    --graupl-icon-color: var(--graupl-link-disabled-color, var(--graupl-theme-active--primary--200, var(--graupl-theme-light--primary--200, var(--graupl-primary--200, hsl(219, 90%, 80%)))));\n  }\n  a.icon.disabled.hover, a.icon-before.disabled.hover, a.icon-after.disabled.hover {\n    --graupl-icon-color: var(--graupl-link-disabled-color, var(--graupl-theme-active--primary--200, var(--graupl-theme-light--primary--200, var(--graupl-primary--200, hsl(219, 90%, 80%)))));\n  }\n  a.icon.disabled:active, a.icon-before.disabled:active, a.icon-after.disabled:active {\n    --graupl-icon-color: var(--graupl-link-disabled-color, var(--graupl-theme-active--primary--200, var(--graupl-theme-light--primary--200, var(--graupl-primary--200, hsl(219, 90%, 80%)))));\n  }\n  a.icon.disabled.active, a.icon-before.disabled.active, a.icon-after.disabled.active {\n    --graupl-icon-color: var(--graupl-link-disabled-color, var(--graupl-theme-active--primary--200, var(--graupl-theme-light--primary--200, var(--graupl-primary--200, hsl(219, 90%, 80%)))));\n  }\n  a.icon.disabled[aria-selected=true], a.icon-before.disabled[aria-selected=true], a.icon-after.disabled[aria-selected=true] {\n    --graupl-icon-color: var(--graupl-link-disabled-color, var(--graupl-theme-active--primary--200, var(--graupl-theme-light--primary--200, var(--graupl-primary--200, hsl(219, 90%, 80%)))));\n  }\n  a.icon.disabled.selected, a.icon-before.disabled.selected, a.icon-after.disabled.selected {\n    --graupl-icon-color: var(--graupl-link-disabled-color, var(--graupl-theme-active--primary--200, var(--graupl-theme-light--primary--200, var(--graupl-primary--200, hsl(219, 90%, 80%)))));\n  }\n  a.icon.disabled[aria-current=true], a.icon-before.disabled[aria-current=true], a.icon-after.disabled[aria-current=true] {\n    --graupl-icon-color: var(--graupl-link-disabled-color, var(--graupl-theme-active--primary--200, var(--graupl-theme-light--primary--200, var(--graupl-primary--200, hsl(219, 90%, 80%)))));\n  }\n  a.icon.disabled.current, a.icon-before.disabled.current, a.icon-after.disabled.current {\n    --graupl-icon-color: var(--graupl-link-disabled-color, var(--graupl-theme-active--primary--200, var(--graupl-theme-light--primary--200, var(--graupl-primary--200, hsl(219, 90%, 80%)))));\n  }\n  a.icon[aria-selected=true], a.icon-before[aria-selected=true], a.icon-after[aria-selected=true] {\n    --graupl-icon-color: ;\n  }\n  a.icon.selected, a.icon-before.selected, a.icon-after.selected {\n    --graupl-icon-color: ;\n  }\n  a.icon[aria-current=true], a.icon-before[aria-current=true], a.icon-after[aria-current=true] {\n    --graupl-icon-color: ;\n  }\n  a.icon.current, a.icon-before.current, a.icon-after.current {\n    --graupl-icon-color: ;\n  }\n}","// @graupl/core layer mixins.\n//\n// These should be used to define the layers of your components to ensure that\n// they are output in the correct order in the final compiled CSS.\n\n@use \"../defaults\" as root-defaults;\n\n@mixin layer($layer) {\n  @if root-defaults.$use-layers {\n    @layer #{root-defaults.$id}.#{$layer} {\n      @content;\n    }\n  } @else {\n    @content;\n  }\n}\n","// @gruapl/icons link base styles.\n//\n// This module provides icon component integration for the link component.\n//\n// It sets the `--graupl-icon-color` custom property to the appropriate `--graupl-link-color` property.\n//\n// The following selectors are generated by default:\n// - `a`: The link component.\n//\n// The following custom properties control the generated selectors:\n// - N/A\n//\n// The following variables control the generated selectors:\n// - N/A\n//\n// @example\n// <a href=\"#\" class=\"icon-after\">Link</a>\n\n@use \"pkg:@graupl/core/src/defaults\" as root-defaults;\n@use \"pkg:@graupl/core/src/base/link/defaults\" as link-defaults;\n@use \"pkg:@graupl/core/src/base/link/variables\" as link;\n@use \"pkg:@graupl/core/src/mixins/layer\" as *;\n@use \"pkg:@graupl/core/src/mixins/theme\";\n@use \"../../component/icon/mixins\" as icon;\n@use \"../../component/icon/defaults\" as icon-defaults;\n@use \"variables\" as *;\n\n@include layer(theme) {\n  // a\n  #{link-defaults.$link-selector-base}#{link-defaults.$link-selector} {\n    // &.icon, &.icon-before, &.icon-after\n    &#{icon-defaults.$icon-selector-base}#{icon-defaults.$icon-selector},\n    &#{icon-defaults.$icon-selector-base}#{icon-defaults.$icon-before-selector},\n    &#{icon-defaults.$icon-selector-base}#{icon-defaults.$icon-after-selector} {\n      @include icon.bind(link.$link-color, link.$link-color-states);\n\n      @if root-defaults.$themeable-components and link-defaults.$themeable {\n        @each $color, $map in link-defaults.$link-theme-map {\n          // &.primary, &.secondary, &.tertiary\n          &#{link-defaults.$link-theme-selector-base}#{link-defaults.$link-theme-selector-prefix}#{$color} {\n            @include icon.bind(link.$link-color, link.$link-color-states);\n          }\n        }\n      }\n    }\n  }\n}\n","// @graupl/icons icon mixins.\n\n@use \"defaults\";\n@use \"pkg:@graupl/core/src/defaults\" as root-defaults;\n@use \"pkg:@graupl/core/src/mixins/state\";\n@use \"pkg:@graupl/core/src/mixins/theme\";\n@use \"sass:map\";\n@use \"variables\" as *;\n\n$-targets: (\n  \"self\": \"&\",\n  \"before\": \"&::before\",\n  \"after\": \"&::after\",\n);\n\n/// Mixin to apply component styles for icons.\n@mixin apply-component($target: \"self\") {\n  #{map.get($-targets, $target)} {\n    display: $icon-display;\n    width: $icon-width;\n    height: $icon-height;\n    background-repeat: no-repeat;\n    background-position: center;\n    background-size: contain;\n    vertical-align: sub;\n    mask-image: $icon;\n    mask-repeat: no-repeat;\n    mask-size: contain;\n    mask-position: center;\n\n    @if $target == \"before\" {\n      content: \"\";\n      margin-inline-end: $icon-spacer;\n    } @else if $target == \"after\" {\n      content: \"\";\n      margin-inline-start: $icon-spacer;\n    } @else {\n      margin-inline: $icon-spacer;\n    }\n  }\n}\n\n/// Mixin to apply theme styles for icons.\n@mixin apply-theme($target: \"self\") {\n  @if root-defaults.$themeable-components and defaults.$themeable {\n    @include theme.generate-modifiers(\n      defaults.$icon-theme-map,\n      defaults.$icon-theme-selector-base,\n      defaults.$icon-theme-selector-prefix,\n      \"icon-\"\n    );\n  }\n\n  #{map.get($-targets, $target)} {\n    background-color: $icon-color;\n  }\n}\n\n/// Mixin to bind icon colors to a component.\n///\n/// @param {CustomProperty} $color  - The default color prop for the icon.\n/// @param {Map}            $states - A map of states and color props for the icon.\n@mixin bind($color, $states) {\n  --#{root-defaults.$prefix}icon-color: #{$color};\n\n  @include state.generate-modifiers(\n    (--#{root-defaults.$prefix}icon-color: $states)\n  );\n}\n\n@mixin apply($target: \"self\") {\n  @include apply-component($target);\n  @include apply-theme($target);\n}\n","// @graupl/core state mixins.\n//\n// A series of mixins to tie styles to a state.\n\n@use \"../defaults\" as root-defaults;\n@use \"sass:map\";\n\n/// Applies styles to a specific state.\n///\n/// @param {string} $state\n///   The name of the state to apply the styles to.\n@mixin state($state) {\n  @each $selector in map.get(root-defaults.$state-selectors, $state) {\n    &#{$selector} {\n      @content;\n    }\n  }\n}\n\n/// Generates state modifiers with properties.\n///\n/// @param {map} $state-map\n///   The map of props and states.\n/// @param {string} $selector-base\n///   The selector base for the state modifier.\n/// @param {string} $selector-prefix\n///   The selector prefix for the state modifer.\n@mixin generate-modifiers($state-map) {\n  @each $state, $selectors in root-defaults.$state-selectors {\n    @each $selector in $selectors {\n      // e.g &:visited, &:focus-visible, &:hover, &:active, &:disabled\n      &#{$selector} {\n        @each $prop, $map in $state-map {\n          #{$prop}: map.get($map, $state);\n        }\n\n        // If the state is disabled, we want that to supersede all other states.\n        @if $state == \"disabled\" {\n          @each $sub-state, $sub-selectors in root-defaults.$state-selectors {\n            @if $sub-state != $state {\n              @each $sub-selector in $sub-selectors {\n                // e.g &:visited, &:focus-visible, &:hover, &:active\n                &#{$sub-selector} {\n                  @each $prop, $map in $state-map {\n                    #{$prop}: map.get($map, $state);\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n}\n"],"names":[]}